需要在CentOS系统的服务器上创建sftp账号,但出于安全须限制此账号不能ssh登录,且仅能访问工作目录,即设置数据上传路径为根目录。
环境说明
- sftp用户为:sftpuser1
- sftp用户组为:sftp
- 数据上传目录为:/data/test_dir
修改sshd配置文件
vim /etc/ssh/sshd_config
```
#注释下面这行
#Subsystem sftp /usr/lib/openssh/sftp-server
#添加以下几行
Subsystem sftp internal-sftp
Match group sftp
#Match user sftpuser1
#匹配整个sftp组,如仅设置单个用户可用:Match user 用户名;
ChrootDirectory /data/test_dir
#指定用户被锁定到的那个目录,为了能够chroot成功,该目录必须属主是root,并且其他用户或组不能写
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
添加用户组和用户
添加用户组:
groupadd sftp
添加用户:
useradd -d /data/test_dir -m -s /bin/false -g sftp sftpuser1
修改密码:
echo "123456passwd" |passwd --stdin sftpuser1
配置数据目录权限
对数据目录需要遵循的权限规则为:
- ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root
- ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是755
即,修改/data/test_dir
目录权限为755,且应确保其上级目录属主属组均为root:
chmod 755 /data/test_dir -R
重启sshd服务
systemctl restart sshd