クライアントにサーバーへのアクセスを許可したいのですが、それらのユーザーをホームディレクトリに制限したいです。表示したいファイルにバインドマウントします。
というユーザーを作成し、bob
という新しいグループに追加しましたsftponly
。にホームディレクトリがあり/home/bob
ます。/bin/false
SSHログインを停止するようにシェルを変更しました。以下がその/etc/passwd
ラインです。
bob:x:1001:1002::/home/bob:/bin/false
また/etc/ssh/sshd_config
、次のものを含むように変更しました。
Match Group sftponly
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
それらとしてログインしようとすると、次のように表示されます
$ sftp bob@server
bob@server's password:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
ChrootDirectory
行をコメントアウトすると、SFTPを実行できますが、サーバーを自由に制御できます。私はそれがChrootDirectory /home
機能することを発見しましたが、それでも彼らに任意のホームディレクトリへのアクセスを与えます。私は明示的に試しましたChrootDirectory /home/bob
が、それも機能しません。
私は何を間違えていますか?に制限bob
するにはどうすればよい/home/bob/
ですか?
----編集-----
わかりましたので、私/var/log/auth.log
はこれを見て、これを見ました:
May 9 14:45:48 nj sshd[5074]: pam_unix(sshd:session): session opened for user bob by (uid=0)
May 9 14:45:48 nj sshd[5091]: fatal: bad ownership or modes for chroot directory component "/home/bob/"
May 9 14:45:48 nj sshd[5074]: pam_unix(sshd:session): session closed for user bob
私はそこで何が起こっているのか完全にはわかりませんが、ユーザーディレクトリに何か問題があることを示唆しています。ここでls -h /home
出力は:
drwxr-xr-x 26 oli oli 4096 2012-01-19 17:19 oli
drwxr-xr-x 3 bob bob 4096 2012-05-09 14:11 bob
ChrootDirectory /home/%u
交換できると信じていますChrootDirectory %h
。