SFTP指定用户配置
sftp指定登录账号访问指定目录及读写权限
1、创建用户与目录
创建一个系统用户(如果尚未创建)。为了安全,建议将其Shell设置为不可登录,例如 /sbin/nologin
#Shell设置为不可登录
useradd -m -s /sbin/nologin sftpuser
# 为该用户设置密码
passwd sftpuser
为用户建立目录(如 uploads)用于实际的文件上传和下载。
# 创建上传目录
mkdir -p /home/sftpuser/uploads
2、设置目录权限
755(用户完全控制)555(所有者、组、其他用户都只有读和执行权限)或 444(仅读权限)
# 设置根目录为root所有,权限755
chown root:root /home/sftpuser
chmod 755 /home/sftpuser
# 设置上传目录为用户所有,权限按需设置(如755)
chown sftpuser:sftpuser /home/sftpuser/uploads
chmod 755 /home/sftpuser/uploads
# 目录下的所有内容和目录权限改为只读(555允许进入目录,444仅能读文件)
chmod 555 /home/sftpuser/uploads
chmod -R 555 /home/sftpuser/uploads/*
3、配置SSH服务器
编辑/etc/ssh/sshd_config添加以下配置
#客户端请求使用 内置SFTP服务
Subsystem sftp internal-sftp
Match User sftpuser # 匹配特定用户,也可用 "Match Group sftpgroup" 匹配用户组
ChrootDirectory /home/sftpuser # 禁锢目录,必须绝对路径
ForceCommand internal-sftp # 强制使用内置SFTP
#ForceCommand internal-sftp -R # 某些SFTP服务器支持 -R 参数强制只读会话
AllowTcpForwarding no # 禁止端口转发
X11Forwarding no # 禁止X11转发
PermitTunnel no # 禁用 SSH 隧道功能
4、重启SSH服务
systemctl restart sshd