1 创建用户, 此用户不可使用SSH登录
useradd -s /sbin/nologin -M user1
useradd -s /sbin/nologin -M user2
useradd -s /sbin/nologin -M user3
useradd -s /sbin/nologin -M user4

2 设定 SFTP根目录

vim /etc/ssh/sshd_config

......
Match User user1                     # 指定 SFTP 用户
ChrootDirectory /FTPFile             # 指定 SFTP 目录
ForceCommand    internal-sftp

Match User user2
ChrootDirectory /FTPFile/FromSFA
ForceCommand    internal-sftp

Match User user3
ChrootDirectory /FTPFile
ForceCommand    internal-sftp

Match User user4
ChrootDirectory /FTPFile
ForceCommand    internal-sftp
......

重启 sshd

systemctl restart sshd

3 设置目录权限

SFTP 目录的权限设定有两个要点:

  • SFTP 目录往上到系统根目录为止, 目录拥有者都只能是root
  • SFTP 目录往上到系统根目录为止, 都不可以具有群组写入权限
  • SFTP 目录往上到系统根目录为止, 权限必须是 755, 往下权限是 770

例如
/FTPFile/FromSFA/upload/data/2020/03/04
/FTPFile/FromSFA       权限必须是 755
upload/data/2020/03/04    权限应该是 770 这样比较合理

根目录授权

chmod 755 /FTPFile

子目录授权

chmod -R 770 /FTPFile/*

分类: 运维

毛巳煜

高级软件开发全栈架构师

工信部备案号:辽ICP备17016257号-2