1.创建sftp用户组
groupadd sftp
2.创建用户并限制用户登录SSH
useradd -g sftp -s /bin/false sanmu
3.设置用户密码
passwd sanmu
4.创建用户上传目录,并且修改成用户的home目录,修改目录权限
mkdir /var/www/video
mkdir /var/www/video/sanmu
usermod -d /var/www/video/sanmu sanmu
chown -R sanmu:sftp /var/www/video/sanmu
5.设置 sshd_config
vi /etc/ssh/sshd_config
找到Subsystem sftp /user/libexec/openssh/sftp-server 前面加#注释掉
添加:
Subsystem sftp internal-sftp
UsePAM yes
Match user sanmu
ForceCommand internal-sftp
ChrootDirectory /var/www/video
多个用户重复配置这三行:
Match user sanmu
ForceCommand internal-sftp
ChrootDirectory /var/www/video
6.重启sshd服务
service sshd restart
7.错误
报错:Directive 'UseDNS' is not allowed within a Match block
解决:找到UseDNS no这行,将其放到第5步添加的代码的上面
遇到的问题:如果出现sftp连不是上或者马上断掉的问题,可能是ChrootDirectory 目录的权限问题,ChrootDirectory 目录的所有者必须是root并且该目录的上级目录的所有者也只能是root,而且只有所有者拥有写的权限。(碰到过两次,写下来记录一下,避免下次再犯)
可以灵活配置sanmu这个文件夹的权限,来判断多个用户是否共享读写
网友评论