フォルダとサブフォルダへのSFTP読み取り/書き込みアクセスを提供し、他のすべての項目は制限します。

フォルダとサブフォルダへのSFTP読み取り/書き込みアクセスを提供し、他のすべての項目は制限します。

特定のフォルダに制限されたUbuntu 14.04 Serverへのアクセス権をユーザーに提供する必要があります。新しいサービスとポート(つまり、ftp)を開くよりもsshセキュリティを楽しむためにsftpに固執したいと思います。しかし、ユーザーを作成してSSHアクセスを有効にするのは過度に寛大です。これにより、ユーザーはSSHを介してログインして、誰もが見ることができるすべてを見ることができます。

ユーザーはログイン後に自分がいる特定のディレクトリを探し、権限に従ってファイルを読み書きし、許可されている場合はフォルダを作成する必要があります。ユーザーの「root」フォルダの上のファイルまたはディレクトリにはアクセスできません。

これを達成するために推奨される方法は何ですか?非常に限られたタイプのシェルはありますか?私は前に試しました

$ usermod -s /bin/false <username>

ただし、これにより、ユーザーはメインフォルダのサブフォルダにCDを移動できません。

ベストアンサー1

ユーザーをSFTPに制限するには、SSHデーモン設定ファイルで簡単に実行できます/etc/ssh/sshd_configMatchファイルの末尾にブロックを配置します。

Match User bob
ForceCommand internal-sftp
ChrootDirectory /path/to/root
AllowTCPForwarding no
PermitTunnel no
X11Forwarding no

Jailディレクトリがで宣言されたユーザーのホームディレクトリである場合は、明示的なパスを指定する代わりに/etc/passwd使用できます。ChrootDirectory %hこの構文を使用すると、ユーザーアカウントグループをSFTP専用として指定できます。つまり、ユーザーデータベースで宣言されたグループ内のすべてのユーザーはsftponlySFTP専用になります。

Match Group sftponly
ForceCommand internal-sftp
ChrootDirectory %h
AllowTCPForwarding no
PermitTunnel no
X11Forwarding no

おすすめ記事