我怎样才能创build一个用户只有sftp?

我已经通过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中写入。

    http://www.debian-administration.org/articles/590

    我认为最好的方法是使用mysecureshell

    http://mysecureshell.sourceforge.net/en/index.html

    你可以很容易地根据用户的需要来裁剪,甚至可以根据需要限制带宽。

    你可以用-s /bin/false来添加一个用户来禁用他们的shell,但是你真正应该看看的是一个chroot的sftp账户。 这会将用户“监禁”到他们自己的目录中,并阻止他们访问或修改chroot目录之外的任何文件或目录。