SFTP致命的坏所有权或模式为chroot目录ubuntu 12.04

我刚刚设置了我的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目录和所有父目录必须正确设置 :

  1. chroot目录及其所有父目录不能具有组或全局写入function(即chmod 755
  2. chroot目录及其所有父母必须由root拥有。

在你的情况下,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目录权限如此挑剔。