我已通过该工具将用户添加到系统中adduser
。然后,在 中/etc/passwd
,我尝试将 更改/bin/bash
为/sbin/nologin
或 更改为/dev/null
,但这些都不起作用。
我希望用户不要选择获取交互式 shell,而只需使用sftp
。有办法吗?
我知道以前有人在这里问过这个问题,但似乎没有人给出满意的答复。
答案1
答案2
您还应该能够使用 OpenSSH 4.9 及更高版本来执行此操作,通过该版本您可以额外 chroot 用户以提高安全性。
在你的/etc/ssh/sshd_config
:
Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no
然后运行:
chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads
用户只能在 /home/user/uploads 中写入。
https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory
答案3
我认为最好的方法是使用 mysecureshell
http://mysecureshell.sourceforge.net/en/index.html
您可以轻松地使用它来 chroot 用户,甚至在需要时限制带宽。
答案4
您可以使用添加用户来-s /bin/false
禁用他们的 shell,但您真正应该考虑设置的是 chrooted sftp 帐户。这会将用户“囚禁”在他们自己的目录中,并阻止他们访问或修改 chroot 目录之外的任何文件或目录。