特定のディレクトリにのみ接続できるユーザーの作成

特定のディレクトリにのみ接続できるユーザーの作成

何人かの友人のためにSSHフォルダを作成しました。 SSH経由でログインするユーザーを作成しましたが、そのユーザーが接続されています。~接続できるフォルダをどのように設定しますか?

私のUSBドライブを指す/usbdrv/というディレクトリがあります。

PS:親ディレクトリに入ることはできません。

ベストアンサー1

ユーザーのホームディレクトリを設定すると、デフォルトでそのディレクトリが決定されます。ファイルシステムの残りの部分はユーザーに表示されます。

アカウントをファイル転送に制限し、特定のディレクトリツリーにのみアクセスできるようにするには、ユーザーを「刑務所」にする必要があります。これはOpenSSH基本サポートfriends;たとえば、これらの友人(そしてそれらだけ)をグループに入れると:

Match Group friends
ForceCommand internal-sftp
ChrootDirectory %h
#AuthorizedKeysFile /etc/sshd/friends/%u.authorized_keys

ChrootDirectoryこれらのユーザーをホームディレクトリに制限します。すべて同じホームディレクトリを持っている場合は、すべて同じSSHキーを使用できますが、これはおそらく望むものではありません。AuthorizedKeysFileこれらのユーザーが自分の認証キーをアップロードできないようにするには、この行のコメントを外します。

認証の観点からこれらのユーザーを独立して処理し、自分のキーを操作できないようにしたり、同じディレクトリツリーへのすべてのアクセス権を付与したい場合は、特定のディレクトリを設定できます。

Match Group friends
ForceCommand internal-sftp
ChrootDirectory /pub

これらのユーザーがファイルシステムのさまざまな部分にアクセスできるようにするには、バインドマウントを使用して結合ビューを作成できます。

ForceCommand internal-sftpこれらのユーザーをSFTPアクセスのみに制限します(例:Filezillaを使用したりSSHFSを使用したり)。他の方法(rsyncなど)を許可するには、次のものが必要です。より高度な構成、例えば、RSSH(読むchrootガイド)。

おすすめ記事