Tôi muốn cấp cho khách hàng quyền truy cập vào máy chủ của mình, nhưng tôi muốn giới hạn những người dùng đó vào thư mục nhà của họ. Tôi sẽ liên kết gắn kết trong bất kỳ tệp nào tôi muốn chúng có thể xem.
Tôi đã tạo một người dùng được gọi bob
và thêm anh ta vào một nhóm mới được gọi sftponly
. Họ có một thư mục nhà tại /home/bob
. Tôi đã thay đổi vỏ của họ /bin/false
để dừng đăng nhập SSH. Đây là /etc/passwd
dòng của họ :
bob:x:1001:1002::/home/bob:/bin/false
Tôi cũng đã thay đổi /etc/ssh/sshd_config
để bao gồm những điều sau đây:
Match Group sftponly
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
Khi tôi cố gắng đăng nhập như họ, đây là những gì tôi thấy
$ sftp bob@server
bob@server's password:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
Nếu tôi nhận xét ChrootDirectory
dòng tôi có thể SFTP nhưng sau đó họ có quyền tự do trên máy chủ. Tôi đã tìm thấy nó ChrootDirectory /home
hoạt động, nhưng nó vẫn cung cấp cho họ quyền truy cập vào bất kỳ thư mục nhà. Tôi đã cố gắng rõ ràng ChrootDirectory /home/bob
nhưng điều đó cũng không hoạt động.
Tôi đang làm gì sai? Làm thế nào tôi có thể giới hạn bob
để /home/bob/
?
----BIÊN TẬP-----
Được rồi vì vậy tôi chỉ cần nhìn /var/log/auth.log
và thấy điều này:
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
Tôi không hoàn toàn chắc chắn những gì đang diễn ra ở đó, nhưng nó cho thấy có gì đó không ổn với thư mục người dùng. Đây là ls -h /home
đầu ra:
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
có thể được thay thếChrootDirectory %h
.