前言
需求是要给Linux服务器设定不同的sftp帐号(普通用户权限,且无法使用SSH来登录服务器),赋予他们上传文件的权限,不过希望这些帐号只能访问特定的目录,以达到一定程序的安全
实现
以账号test123
、目录/opt/test123
为例进行配置
- 创建sftp用户
useradd test123
- 设置密码
passwd test123
- 设置sftp的ssh的配置文件
vi /etc/ssh/sshd_config
注释掉这行:# Subsystem sftp /usr/libexec/openssh/sftp-server
坑1. Match User 这个一定要放在配置文件的最后,要不然测试过重启sshd起不来
坑2.ChrootDirectory 后面跟的是上一级目录 ForceCommand再到实际的目录,否则不能写入文件
# Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match User test123 #允许用户访问的目录的上一级 ChrootDirectory /opt X11Forwarding no AllowTcpForwarding no #这里到/opt下的具体目录 ForceCommand internal-sftp -d /test123
- 设置好后重启SSH服务
systemctl restart sshd
- 修改目录权限
#上次目录权限是755 chmod 755 /opt chown test123:test123 /opt/test123/ chmod 755 /opt/test123/
- 设置sftp帐号,不允许登录ssh
usermod test123 -s /sbin/nologin
文章评论