是否可以授予用户 sftp 访问权限而不授予他 ssh 访问权限?
答案1
嗯,rssh 是一个受限的 shell,提供 sftp 访问,但不提供 ssh 访问。
sudo apt-get install rssh
sudo chsh -s /usr/bin/rssh $username
你可能必须
sudo bash -c "echo '/usr/bin/rssh' >> /etc/shells"
使其成为一个“有效”的 shell。
针对 Ubuntu 12.04 的更新 2012-9-13
文件 /etc/rssh.conf 对各种访问进行了注释;因此,对于 sftp,取消注释第 10 行“#allowsftp”。
sudo -e /etc/rssh.conf
改变
#allowsftp
到
allowsftp
节省。
答案2
将文件的最后一个参数/etc/passwd
(在用户的线路上)设置为/usr/lib/openssh/sftp-server
(或您使用的任何 sftp 服务器)。这将使用户的登录 shell 成为 sftp 服务器,并且这就是他可以使用的全部。这比其他答案需要的设置更少,而且它恰到好处,尽管不存在允许稍后使用 scp 的选项。
答案3
有时为 ftp 客户端设置 umask 很有用。为此,创建一个简单的脚本/usr/lib/openssh/sftp-server-go.sh
#!/bin/bash
/usr/lib/openssh/sftp-server -u 0007
并用它来/etc/passwd
代替。