需求:
1、用户能够通过 sftp 协议上传 html 文件至 nginx 目录,用户不能 ssh 到服务器
2、用户能够通过 nginx 访问 html 文件
sftp 配置
1、创建用户组
groupadd sftp
//创建名为 sftp 的用户组
2、创建用户到用户组
useradd -d /home/sftp -m -g sftp -s /bin/false sftp
- -d /home/sftp -m 设置用户家目录,由于不能登录,这个目录其实没什么用,因此也可以去掉家目录路径并将 -m 换成 -M(不创建家目录)
- -g 指定用户组
- -s /bin/false 指定 shell 路径,/bin/false 和 /sbin/nologin 都意味着禁止使用 shell(即无法 ssh 登录),/bin/false 更严格
- sftp 用户名称
3、创建用户密码
passwd sftp
//为 sftp 用户设置密码
4、设置 sftp 活动目录,即 sftp 用户登录后所在的目录
mkdir -p /var/www/sftp
5、配置目录权限,如果后续通过sftp sftp@127.0.0.1
登录出现以下错误,则很有可能是目录权限配置不正确。
sftp@127.0.0.1's password:
packet_write_wait: Connection to 127.0.0.1 port