搭建 SFTP Server 服务器

主要注意文件权限相关问题

参考:

  1. http://blog.itpub.net/30345407/viewspace-2711704/
  2. 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 组里。

点击进入评论 ...