手记

多用户多分组的SFTP配置方式


利用ssh自带的sftp协议来代替传统的ftp软件,减轻服务器负担


Step 1. 设计用户和组的结构

用户所属分组Home目录
Codeeerokchakela/mnt/data1/Private/Codeeer
Rideskyokchakelamnt/data1/Private/Ridesky
Dorothyokchakelamnt/data1/Private/Dorothy
pyftpaccess/home/py

提示:/mnt/data1/Private/ 目录为团队FTP网盘根目录

创建组并设置成员

#创建okchakela组groupadd okchakela#添加成员并指定Home目录useradd Codeeer -d /mnt/data1/Private/Codeeer -s /sbin/nologin -G okchakela
useradd Ridesky -d /mnt/data1/Private/Ridesky -s /sbin/nologin -G okchakela
useradd Dorothy -d /mnt/data1/Private/Dorothy -s /sbin/nologin -G okchakela#创建ftpaccess组groupadd ftpaccess#添加成员useradd py -s /sbin/nologin -G ftpaccess

设置组目录及以上目录的root所属(非常重要,否则Chroot会拒绝连接),并设置具体用户目录的本人所属

#用于匹配okchakela组chown root:root /chown root:root /mntchown root:root /mnt/data1chown root:root /mnt/data1/Private#设置用户私人目录的所属人chown -R Codeeer /mnt/data1/Private/Codeeerchown -R Ridesky /mnt/data1/Private/Rideskychown -R Dorothy /mnt/data1/Private/Dorothy#设置其他人不可访问的权限(700)chmod -R 700 /mnt/data1/Private/Codeeerchmod -R 700 /mnt/data1/Private/Rideskychmod -R 700 /mnt/data1/Private/Dorothy#用于匹配ftpaccess组chown root:root /home#设置用户私人目录的所属人chown py /home/py#设置其他人不可访问的权限(700)chmod 700 /home/py

提示:执行 ls -l 查看目录详细信息

Step 2. 配置sshd_config文件

nano /etc/ssh/sshd_config
  • 编辑配置文件

anonymous_enable=NO #设置不允许匿名访问local_enable=YES #设定本地用户可以访问。如使用虚拟宿主用户,在此为NO的情况下将无法访问chroot_list_enable=YES #锁定用户访问目录(禁止跳转)ascii_upload_enable=YES
ascii_download_enable=YES #对ASCII模式上传和下载的支持

在文件结尾添加以下部分

#要注消原来的subsystem设置 #Subsystem  sftp  /usr/libexec/openssh/sftp-serverSubsystem sftp internal-sftp   
#匹配okchakela组Match Group okchakela
ChrootDirectory /mnt/data1/Private#匹配ftpaccess组Match Group ftpaccess
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

提示:Match 条件块的结尾标识是另一个Match指令或者文件结尾

Step 3. 重启sshd服务

systemctl restart sshd.service

如运行失败可通过以下指令查看状态

systemctl status sshd.service

原文出处

0人推荐
随时随地看视频
慕课网APP