追加読書

追加読書

私の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通常の方法で。

追加読書

おすすめ記事