1、创建sftp群组
groupadd bmssftp
2.创建用户,并指定分组和主目录
useradd -d /alidata/ftpdata/epay.nm.test -s /sbin/nologin -g bmssftp epay.nm.test
解析:
useradd 添加用户epay.nm.test
passwd 给用户epay.nm.test添加密码
-d 指定用户根目录为/alidata/ftpdata/epay.nm.test
-s 指定shell脚本为/sbin/nologin,表示不允许shell登录
-g 创建分组bmssftp
-G 指定root分组
PS: 创建有问题可以删除重新创建 userdel -r epay.nm.test
3.设定密码
passwd epay.nm.test
4.设置访问权限
chown epay.nm.test /alidata/ftpdata/epay.nm.test
5. 修改epay.nm.test用户主目录的权限,让其属于root用户
chown root ~epay.nm.test
6.更改sftp配置文件
修改配置文件
vim /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match User epay.nm.test
ChrootDirectory /alidata/ftpdata/epay.nm.test
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
ChrootDirectory设置的目录权限及上级,属主和属组必须是root
ChrootDirectory设置的目录权限及上级,只有属主能拥有写权限,最大只能是755
多个用户请重复配置这三行:
Match User user1,user2
hrootDirectory /home
ForceCommand internal-sftp
参数
说明
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转发
6.重启sshd服务
service sshd restart