我正在尝试创建用户 lenny,该用户在文件夹中拥有读写权限/home/lenny/
,并且没有 shell,只能通过 SFTP 访问。我正在执行以下操作:
useradd lenny
mkdir /home/lenny
usermod -d /home/lenny lenny
passwd lenny
chown lenny:lenny /home/lenny
chmod 755 /home/lenny
usermod -s /bin/false myuser
然后我修改了/etc/ssh/sshd_config
:
Subsystem sftp internal-sftp`
Match User lenny
ChrootDirectory /home/lenny
ForceCommand internal-sftp
现在,当我这样做时,我可以通过执行和sftp lenny@server
轻松离开 CHROOT ,我看到了一切!cd /
ls -la
这是为什么???我不明白,配置应该没问题,还是我错了?
答案1
更改后是否重新启动 sshd 服务/etc/ssh/sshd_config
?
sudo /etc/init.d/ssh restart
确保 sftp 用户(在本例中/home/lenny
)的 chroot 目录由 root 而不是 sftp 用户拥有。chmod 755
是正确的。
另外,我会添加以下两行以提高安全性:
Match User lenny
ChrootDirectory /home/lenny
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
重新启动您的 sshd 服务,您应该拥有所需的 chroot。