ubuntu创建sftp账号及访问权限设置注意事项
创建一个专门的sftp用户步骤:
1. 需要创建一个用户组,专门用于sftp用户
# groupadd sftpusers ps我里的用户组是sftpusers ,查看cat /etc/group |more
2. 创建一个用户test(安环)
# useradd -s /bin/false -G sftpusers test ps注意这里将test用户的shell设置为/bin/false使他没有登陆shell的权限
# passwd test #设置test用户密码test123
3. 编辑/etc/ssh/sshd_config
找到Subsystem这个配置项,将其修改为
Subsystem sftp internal-sftp
然后再到文件最尾处增加配置设定属于用户组sftpusers的用户都只能访问自己的文件夹
Match Group sftpusers
X11Forwarding no #禁止使用X11转发 运行GUI程序
AllowTcpForwarding no #是否允许TCP转发
ForceCommand internal-sftp
ChrootDirectory /var/sftp/ #需在 /var/sftp/ 创建test和ledpc文件夹,该文件夹就是登录的sftp用户目录
保存并关闭
4. 修改test用户所在文件夹的权限,让其属于root用户
# chown /var/www/html/sftp/test
5. 重启sshd服务
# service sshd restart #重启服务 sudo /etc/init.d/ssh restart
6. 测试用户账号
# ssh test@localhost
ps连接会被拒绝,证明该用户没有ssh shell登录的权限
注意:这样设置以后,会影响原来系统有shell权限的用户登录sftp,造成无法登录,会有类似”Received unexpected end-of-file from SFTP server”错误提示, 如果想恢复原来系统有shell权限的用户登录sftp,只需要将第3步设置注释掉即可.