Step 1. 设计用户和组的结构
用户 | 所属分组 | Home目录 |
---|---|---|
Codeeer | okchakela | /mnt/data1/Private/Codeeer |
Ridesky | okchakela | mnt/data1/Private/Ridesky |
Dorothy | okchakela | mnt/data1/Private/Dorothy |
py | ftpaccess | /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 /mnt
chown root:root /mnt/data1
chown root:root /mnt/data1/Private
#设置用户私人目录的所属人
chown -R Codeeer /mnt/data1/Private/Codeeer
chown -R Ridesky /mnt/data1/Private/Ridesky
chown -R Dorothy /mnt/data1/Private/Dorothy
#设置其他人不可访问的权限(700)
chmod -R 700 /mnt/data1/Private/Codeeer
chmod -R 700 /mnt/data1/Private/Ridesky
chmod -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 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
网友评论