Właśnie skonfigurowałem mój serwer SFTP i działa dobrze, gdy używam go z mojego pierwszego konta użytkownika. Chciałem dodać użytkownika, który nazwiemy „magnarp”. Na początku podobało mi się to w sshd_config:
Subsystem sftp internal-sftp
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
To działało wystarczająco dobrze, użytkownik magnarp wszedł do swojego katalogu domowego. Następnie spróbowałem dodać do niego link symboliczny.
home$ sudo ln -s /home/DUMP/High\ Defenition/ /home/magnarp/"High Defenition"
Symlink działał dobrze przez SSH, ale nie przez SFTP.
Więc teraz chcę zrobić grupę Chroot sftponly do / home / DUMP i podobało mi się to:
Match group sftponly
ChrootDirectory /home/DUMP
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Folder DUMP ma następujące uprawnienia.
drwxrwxrwx 5 root root 4096 aug 18 02:25 DUMP
A to jest kod błędu:
Aug 18 16:40:29 nixon-01 sshd[7346]: Connection from 192.168.1.198 port 51354
Aug 18 16:40:30 nixon-01 sshd[7346]: Accepted password for magnarp from 192.168.1.198 port 51354 ssh2
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session opened for user magnarp by (uid=0)
Aug 18 16:40:30 nixon-01 sshd[7346]: User child is on pid 7467
Aug 18 16:40:30 nixon-01 sshd[7467]: fatal: bad ownership or modes for chroot directory "/home/DUMP"
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session closed for user magnarp
A) Jaki byłby sens tworzenia chroot, jeśli tworzenie linków sim pomógłoby uniknąć chroota? (Każdy użytkownik może załadować łącze simlink, a następnie uzyskać dostęp do całego systemu plików)
B) Jeszcze jeden chmod 777 i zostaniesz osaczony przez theo ( http://rlv.zcache.com/i_got_flamed_by_theo_de_raadt_t_shirt_tshirt-p235453348828729121en7rf_210.jpg ). Zobacz http://lists.mindrot.org/pipermail/openssh-unix-dev/2010-J January/028151.html, aby zrozumieć, dlaczego openssh jest tak wybredny w kwestii uprawnień do katalogu chroot.
źródło