さて、Ubuntu 20.04にSFTPサーバーを設定しました。 sftpを介してボックスにアクセスする複数のユーザーがあり、各ユーザーが自分のディレクトリにのみアクセスできることを願っています。私は彼らが他のユーザーのディレクトリやファイルを見て、修正し、ダウンロードするなどのことをしたくありません。基本的にchroot刑務所のシナリオです。
私は次のフォルダ構造で終わりました。
/var/
|-- sftp/
|-- user1/
|-- uploads/
|-- file1
|-- file2
|-- user2/
|-- upoads/
|-- filea
|-- fil2b
私の/etc/ssh/sshd_config
内容は次のとおりです。
Match Group mygroup
ForceCommand internal-sftp
PasswordAuthentication yes
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Match User user1
ChrootDirectory /var/sftp/user1
Match User user2
ChrootDirectory /var/sftp/user2
基本的には動作しますが、理解していないいくつかの側面があります。
明らかにSFTPサーバーを構成する/etc/ssh/sshd_config
ときにChrootDirectory
これをroot
。たとえば、user1
接続するとフォルダー/var/sftp/user1
が失敗します。彼らは/var/sftp/user1/uploads
物をアップロードしてダウンロードできる場所に行くべきです。ディレクトリuser1
を所有するように設定しました/var/sftp/user1/uploads
。ユーザーの立場ではやや不便な部分です。ルートディレクトリで直接動作させる方法はありますか?
不明なもう1つのことは、/var/sftp/user1
フォルダ/var/sftp/user1/uploads
に権限755を割り当てる必要があることです。他の権限(777も含む)を使用すると機能しないようです。なぜそんなことですか? 755の特別な点は何ですか?