1 创建sftp群组
groupadd sftp
2 创建sftp用户并关联到sftp群组
useradd -d /home/sftpdir -s /sbin/nologin -g sftp aaa
修改用户aaa的密码
passwd aaa
解析: useradd 添加用户ftpUser passwd 给用户ftpuser添加密码
-d 指定用户根目录为/mnt/infinitsoft
-s 指定shell脚本为/sbin/nologin,表示不允许shell登录
-g 创建分组sftp
-G 指定root分组
PS: 创建有问题可以删除重新创建 userdel -r ftpUser
3 关于/home/aaa权限和归属问题
/home 群组归属:root:root 权限:755
chown root:root /home chmod 755 /home
/home/aaa 群组归属:root:root 权限:755
chown root:root /home/aaa chmod 755 /home/aaa
/home/aaa/xxx 群组归属 aaa:sftp 权限:777
chown aaa:sftp /home/aaa/xxx chmod 777 /home/aaa/xxx
4 更改sshd_config文件,修改相关的配置(增加)
vim /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server 注释掉这一行 Subsystem sftp internal-sftp Match User aaa ChrootDirectory /home/aaa ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
参数 | 说明 |
---|---|
Subsystem sftp internal-sftp | 指定使用sftp服务使用系统自带的internal-sftp |
Match Group sftp | 用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割 |
Match User mysftp | 匹配用户,多个用户名之间也是用逗号分割 |
ChrootDirectory /home/%u | 设定属于用户组sftp的用户访问的根文件夹 |
ForceCommand internal-sftp | 指定sftp命令 |
AllowTcpForwarding no | |
X11Forwarding no | 设置不允许SSH的X转发 |
5 重启sshd服务
service sshd restart