私のNASサーバーの1つにssh-chroot刑務所を設定しようとしています。システムはNAS4Free(nanobsdベース)で実行されます。ユーザーは、他のサーバーに対してsshを開き、そこからコマンドを実行するbashスクリプトである1つのコマンドのみを実行できる必要があります。
chrootを設定するには、sshd設定にこの情報があります。
Match User op
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
スクリプトには次の行があります。
ssh -i /.ssh/id_rsa backup@$externalresource -t "/mnt/storage/backup/run_project.sh '$1' '$2'"
sshを使用してそのchrootにログインできますが、スクリプトの実行時にsshコマンドを実行しようとすると、次のエラーが発生します。
Couldn't open /dev/null: Operation not supported
chrootでsshプレーンを実行しようとすると同じことが起こります。
[I have no name!@nas /]$ 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が許可されていない操作を返す理由の説明を見つけようとしましたが、役に立つものが見つかりませんでした。
誰かがこの問題を解決する方法を説明できますか?
答え1
私は以下を使用してdev / nullを作成しました。
mknod開発/null c 2 2
あなたの知識は昔ながらです。 NAS4FreeはFreeBSD 10や11のようなシステムに基づいているので、もうそうではありません。 (とにかく空のデバイスのデバイス番号ではありません。)マニュアルを読んでくださいmknod
。物理ディスクまたはRAMファイルシステムで作成されたデバイスノードを引き続き実行できますが、mknod
作成したノードはほとんど完全に役に立ちません。ご覧のとおり、カーネルではそれを使用してデバイスを開くことはできません。
これが、刑務所(設定できる単純なchroot環境ではなく、オペレーティングシステムに付属の実際の刑務所)で人々がsshd_config
刑務所の内部にインスタンスをインストールしてデバイスファイルを取得する理由です。これが刑務所にマウント可能devfs
かどうか、およびどのdevfsルールセットが適用されるかを制御するためのハンドルがある理由でもあります。devfs
/dev/null
変更されたルート環境で使用するには、変更されたルートに物理mount_nullfs
ツリーが表示されるようにする必要があります。/dev
実際の刑務所を使用している場合/dev
。
実際の刑務所を使用している場合は、もちろん実行するように設定することもできます。sshd
刑務所の内部、刑務所のIPアドレスを受信し、サービスとして有効刑務所 /etc/rc.conf
通常の方法で。
追加読書
mknod
。 FreeBSD 11.0 マニュアル。devfs
。 FreeBSD 11.0 マニュアル。devfs.rules
。 FreeBSD 11.0 マニュアル。- 文書: 方法: 刑務所。 NAS4無料wiki。
- マテオリオルダート。 」刑務所」。 FreeBSDマニュアル。
- スコットロップ(2015-03-04)。 FreeBSD刑務所。