添加限制权限的sftp用户


查找相关文章:sftp

文章翻译自https://library.linode.com/security/sftp-jails 

也可参考这篇文章sftp替代ftp


 如果ssh版本太低 ,则需要升级一下

http://www.dayanmei.com/update-openssh-to-5-8/ 

升级前原来的普通用户可能被禁用,因此请开启root可以登录后再进行操作


一 配置openssh

首先配置openssh

使用自己喜欢的编辑器编辑 /etc/ssh/sshd_config 文件

vim /etc/ssh/sshd_config

在末尾增加一行

Subsystem sftp internal-sftp
Match group filetransfer
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

然后保存文件

重启openssh

/etc/init.d/ssh restart

二 修改用户账户

我们需要为用户设置新的用户组 属主和权限

建议一个新的用户组filetransfer

groupadd filetransfer

把用户username加入到组filetransfer 并修改用户目录权限为root,修改权限为755

usermod -G filetransfer username
chown root:root /home/username
chmod 755 /home/username

用户将不能再user目录下建立文件,因为目录user的所有者是root用户

下面,你需要为每个用户建立一个目录,用户将拥有这个目录的所有权限

cd /home/username
mkdir docs public_html
chown username:filetransfer *

用户现在应该能够登录到自己的帐户,并通过SFTP传输文件到他们指定的子目录,但是他们不能够看到你的系统文件其他部分。