GNU/Linux >> Linux の 問題 >  >> FreeBSD

Freebsd – / dev / null操作がサポートされていないため、Chrootされた刑務所のSSHが機能しませんか?

NASサーバーの1つにssh-chrootjailをセットアップしようとしています。システムはNAS4Free(nanobsdに基づく)で実行されます。ユーザーは、1つのコマンドのみを実行できる必要があります。これは、sshを別のサーバーに開き、そこで1つのコマンドを実行するbashスクリプトです。

chrootをセットアップするために、sshd構成にこれがあります。

Match User op
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no

スクリプトには次の行が含まれています:

ssh -i /.ssh/id_rsa [email protected]$externalresource -t "/mnt/storage/backup/run_project.sh '$1' '$2'"

sshを使用してそのchrootにログインできますが、スクリプトを実行すると、スクリプトでsshコマンドを実行しようとすると次のエラーが発生します。

Couldn't open /dev/null: Operation not supported

chroot内でsshplainを実行しようとすると同じことが起こります

[I have no [email protected] /]$ ssh
Couldn't open /dev/null: Operation not supported

/ dev / nullは次のようになります:

$ ls -la dev/
total 8
drwx--x--x  2 root  staff    512 Nov 29 18:16 .
drwxr-xr-x  8 root  staff    512 Nov 29 18:06 ..
crw-rw-rw-  1 root  staff   0x18 Nov 29 18:16 null

666パーミッションがないと、もちろん/ dev/nullパーミッション拒否エラーが発生します。

を使用してdev/nullを作成しました
mknod dev/null c 2 2

/ dev / nullが許可されていない操作を返す理由の説明を見つけようとしましたが、役立つものは見つかりませんでした。

誰かがこれを修正する方法を説明してもらえますか?

承認された回答:

を使用してdev/nullを作成しました
mknod dev/null c 2 2

あなたの知識は時代遅れです。 NAS4FreeがFreeBSD10や11のようなものに基づいているので、物事はもはやこのようには機能しません(とにかくnullデバイスのデバイス番号でもありません)。mknodを読んでください。 マニュアル。 mknodは引き続き実行できます 実際のディスクまたはRAMファイルシステムにデバイスノードを作成しますが、作成するノードはほとんどまったく役に立ちません。ご覧のとおり、カーネルではデバイスを開くことができません。

これが、刑務所での理由です。実際の刑務所は、オペレーティングシステムに付属しているものであり、sshd_configで設定できる単純なchroot環境ではありません。 — devfsをマウントしてデバイスファイルを取得します 刑務所内のインスタンス。また、刑務所にdevfsかどうかを制御するためのノブがあるのもそのためです。 マウントでき、どのdevfsルールセットがそれに適用されるか。

/dev/nullが必要な場合 変更したルート環境では、mount_nullfsを使用する必要があります 実際の/devを作成します 変更されたルート内に表示されるツリー。善意の刑務所を使用する場合は、/devにdevfsをマウントするように構成するだけです。 。

善意の刑務所を使用する場合は、もちろん、sshdを実行するように設定します。 刑務所内 、刑務所のIPアドレスをリッスンし、刑務所のでサービスとして有効になっている /etc/rc.conf 通常の方法で。

関連:[[$ a ==z*]]と[$a==z *]の違いは?

さらに読む

  • mknod 。 FreeBSD11.0マニュアル。
  • devfs 。 FreeBSD11.0マニュアル。
  • devfs.rules 。 FreeBSD11.0マニュアル。
  • ドキュメント:ハウツー:刑務所。 NAS4Freewiki。
  • MatteoRiondato。 「刑務所」。 FreeBSDハンドブック
  • スコットロブ(2015-03-04)。 FreeBSD Jails

FreeBSD
  1. /dev/dm-Z デバイスから /dev/sdX および /dev/mapper/mpathY デバイスをマップする方法

  2. find -exec mv {} ./target/ + が機能しないのはなぜですか?

  3. screen 端末 '/dev/pts/0' を開けません - 確認してください

  1. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

  2. Linux:/dev/console 、 /dev/tty 、 /dev/tty0 の違い

  3. /dev/null に書き込む仮想ブロック デバイスを作成します。

  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. Linux:/ dev / console、/ dev / tty、/ dev / tty0の違いは?

  3. / dev / stdin、/ dev / stdout、および/ dev / stderrはどの程度移植可能ですか?