主要注意文件权限相关问题
参考:
- http://blog.itpub.net/30345407/viewspace-2711704/
- http://www.hechuangyi.com/install-sftp-server-on-centos7/
1. 创建用户 sftpuser,并禁止ssh登录,不创建家目录
useradd -s /sbin/nologin -M sftpuser
2. 设置用户密码
passwd sftpuser
3. 创建sftp根目录。
mkdir /sftp
4. 设置目录权限,目录的权限设定有两个要点:
目录开始一直往上到系统根目录为止的目录拥有者都只能是root,
目录开始一直往上到系统根目录为止都不可以具有群组写入权限
chown root:root /sftp
chmod 755 /sftp
5. 创建用户sftpuser根目录,目录名为用户名
cd /sftp
mkdir -p /sftp/sftpuser
mkdir -p /sftp/sftpuser/upload
6. 设置sftpuser目录权限和upload目录权限
chown root:sftpuser /sftp/sftpuser
chmod 755 /sftp/sftpuser
chown -R sftpuser:sftpuser /data0/sftp/sftpuser/upload
upload 目录为用户上传文件的目录
7. 配置sshd_config
vi /etc/ssh/sshd_config
8. 修改如下内容,并保存退出
# 注释掉这行
# Subsystem sftp /usr/libexec/openssh/sftp-server
# 添加这行:
Subsystem sftp internal-sftp
#添加在配置文件末尾
Match User sftpuser
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
9. 重启sshd服务器
systemctl restart sshd.service
10. 配置 nginx 访问 upload 目录
cd /var/www/html
ln -s /sftp/sftpuser/upload upload
usermod -a -G www-data sftpuser
主要是把 stfpuser 用户加入到 www-data 组里。