Linux中创建sftp用户并限制目录权限
注意:一是禁止该用户通过ssh登录,二是不需要创建家目录。家目录简单来说,就是在/home下的用户命令,默认每个用户在/home中都是有与用户名一样的文件夹。
1. 创建用户
# 创建组
groupadd sftp
# 创建目录
mkdir -p /data/sftp/
# 创建用户并制定目录
useradd -d /data/sftp/mysftp/ -s /sbin/nologin -g sftp sftp
# 设置密码
passwd sftp
# 创建成功提示
passwd :all authentication tokens updated successfully。
# 给目录授权用户组
chown -R root:sftp /data/sftp/mysftp/
# 给目录 755 权限 权限也只能是755,否则无法限制目录。
2. 修改配置文件
在 # override default of no subsystems 下添加
vim /etc/ssh/sshd_config
# override default of no subsystems
#Subsystem sftp /usr/libexec/openssh/sftp-server #注释掉这行
Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-SFTP
Match Group sftp #匹配用户组,如果要匹配多个,需要用逗号分隔
ChrootDirectory /data/sftp/mysftp #指定SFTP用户只能到指定目录
ForceCommand internal-sftp #指定SFTP命令
AllowTcpForwarding no #以下两行表示,如果不希望用户能使用端口转发的画,就加上,否则就删除掉
X11Forwarding no
3. 重启sshd服务
systemctl restart sshd.service
4. 查询sshd启动状态命令
systemctl status sshd.service
5. 测试是否创建成功
sftp -oPort=22 sftp@127.0.0.1