我已经通过adduser
工具向系统添加了一个用户。 然后,在/etc/passwd
,我尝试将/bin/bash
更改为/sbin/nologin
或/dev/null
,但这两个都没有成功。
我想用户没有select得到一个交互式的shell,只是使用sftp
。 有没有办法?
我知道这里曾经有人问过这个问题,但似乎没有人给出满意的答复。
你应该用来改变shell的命令是chsh 。 nologin shell可以是/sbin/nologin
或者/usr/sbin/nologin
(通过查看/etc/shells
),但是/bin/false
可能是一个更好的select。
chsh -s /bin/false user
你应该考虑设置一些像scponly一样的东西 ,这些都是你想要的。
你也应该可以用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中写入。
我认为最好的方法是使用mysecureshell
http://mysecureshell.sourceforge.net/en/index.html
你可以很容易地根据用户的需要来裁剪,甚至可以根据需要限制带宽。
你可以用-s /bin/false
来添加一个用户来禁用他们的shell,但是你真正应该看看的是一个chroot的sftp账户。 这会将用户“监禁”到他们自己的目录中,并阻止他们访问或修改chroot目录之外的任何文件或目录。