问题描述
我只是设置了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目录和所有父目录必须be properly set:
-
chroot目录及其所有父目录不能具有组或世界写入功能(即
chmod 755
) -
chroot目录及其所有父目录必须由root拥有。
在您的情况下,可以使用chmod 755 /home/DUMP
修复登录错误。通过将目录设为/home/DUMP/
的子目录,可以解决您的明显意图是sftpuser可以登录到world-writable目录,并且每个人都可以放置文件