Sunucuma bir istemci erişimi vermek istiyorum, ancak bu kullanıcıları giriş dizinleriyle sınırlamak istiyorum. Görmelerini istediğim herhangi bir dosyaya bağlanacağım.
Adlı bir kullanıcı oluşturdum bob
ve onu yeni bir gruba ekledim sftponly
. Ev dizinleri var /home/bob
. /bin/false
SSH oturumlarını durdurmak için kabuklarını değiştirdim . İşte onların /etc/passwd
çizgi:
bob:x:1001:1002::/home/bob:/bin/false
Ayrıca /etc/ssh/sshd_config
, aşağıdakileri içerecek şekilde değiştirdim :
Match Group sftponly
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
Onlar gibi giriş yapmaya çalıştığımda, işte görüyorum
$ sftp bob@server
bob@server's password:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
Dışarı yorum yaparsanız ChrootDirectory
çizgiyi ben SFTP olabilir ama sonra sunucu üzerinden başıboş var. Bunun ChrootDirectory /home
işe yaradığını buldum , ancak hala herhangi bir ana dizine erişmelerini sağlıyor. Açıkça denedim ChrootDirectory /home/bob
ama bu da işe yaramadı.
Neyi yanlış yapıyorum? Nasıl sınırlandırabilir bob
için /home/bob/
?
----DÜZENLE-----
Tamam, şimdi baktım /var/log/auth.log
ve şunu gördüm:
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
Orada neler olup bittiğinden tam olarak emin değilim, ancak kullanıcı dizininde bir sorun olduğunu gösteriyor. İşte ls -h /home
çıktı:
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
Değiştirilebileceğine inanıyorumChrootDirectory %h
.