我刚刚设置了我的SFTP服务器,当我从我的第一个用户帐户使用它时,它工作正常。 我想添加一个我们称之为“magnarp”的用户。 起初,我在sshd_config中这样做了:
Subsystem sftp internal-sftp Match group sftponly ChrootDirectory /home/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
这工作得很好,用户magnarp进入他的主目录。 然后我试图添加一个符号链接。
home$ sudo ln -s /home/DUMP/High\ Defenition/ /home/magnarp/"High Defenition"
符号链接通过SSH工作正常,但不是通过SFTP。
所以现在我想要做的就是把Chroot组合成sftponly到/ home / DUMP,我这样做:
Match group sftponly ChrootDirectory /home/DUMP X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
DUMP文件夹的权限如下。
drwxrwxrwx 5 root root 4096 aug 18 02:25 DUMP
这是错误代码:
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
当涉及到chroot目录时, sshd有一定程度的偏执狂。 我不认为这可以被禁用(即使StrictModes no )。 chroot目录和所有父目录必须正确设置 :
chmod 755 ) 在你的情况下,login错误可以用chmod 755 /home/DUMP修复。你明显的目的是拥有一个sftpuser可以login的世界可写的目录,并且每个人都可以放入文件,可以通过将该目录设置为/home/DUMP/
A)如果制作simlinks会帮助回避chroot,那么制作chroot会有什么意义呢? (任何用户都可以上传一个simlink,然后访问整个文件系统)
B)另外一个chmod 777,你会被theo弄糊涂( http://rlv.zcache.com/i_got_flamed_by_theo_de_raadt_t_shirt_tshirt-p235453348828729121en7rf_210.jpg )。 请参阅http://lists.mindrot.org/pipermail/openssh-unix-dev/2010-January/028151.html以了解openssh为何对chroot目录权限如此挑剔。