携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第20天,点击查看活动详情
第一步:创建sftp群组
groupadd sftp
\
\
第二步:创建sftp用户并关联到sftp群组
useradd -d /home/sftpdir -s /sbin/nologin -g sftp(组) aaa(用户)
\
解析: useradd 添加用户ftpUser passwd 给用户ftpuser添加密码
-d 指定用户根目录为/mnt/infinitsoft
-s 指定shell脚本为/sbin/nologin,表示不允许shell登录
-g 创建分组sftp
-G 指定root分组
PS: 创建有问题可以删除重新创建 userdel -r ftpUser
\
\
第三步:修改用户aaa的密码
passwd aaa
\
\
第四步:关于/home/aaa权限和归属问题
/home 群组归属:root:root 权限:755
chown root:root /home
chmod 755 /home
\
\
/home/aaa 群组归属:root:root 权限:755
chown root:root /home/aaa
chmod 755 /home/aaa
\
\
/home/aaa/xxx 群组归属 aaa:sftp 权限:777
chown aaa:sftp /home/aaa/xxx
chmod 777 /home/aaa/xxx
\
\
第五步:更改sshd_config文件,修改相关的配置(增加)
把132行给注释掉Subsystem sftp /usr/libexec/openssh/sftp-server
\
然后添加Subsystem sfto internal-stfp
Match User aaa
ChrootDirectory /home/aaa
ForceCommand internal-sftp
AllowTcpForwarding no
\
\
参数 说明 Subsystem sftp internal-sftp 指定使用sftp服务使用系统自带的internal-sftp Match Group sftp 用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割 Match User mysftp 匹配用户,多个用户名之间也是用逗号分割 ChrootDirectory /home/%u 设定属于用户组sftp的用户访问的根文件夹 ForceCommand internal-sftp 指定sftp命令 AllowTcpForwarding no X11Forwarding no 设置不允许SSH的X转发
\
第六步:重启sshd服务
service sshd restart
\
列子2 创建目录
mkdir -p /opt/sftp/fw000005/fw000005 mkdir -p /home/sftp/fw000015/fw000015 mkdir -p /home/sftpbacklog/
创建用户
useradd -d /opt/sftp/fw000005 -s /sbin/nologin -g sftp fw000005 useradd -d /home/sftp/fw000015 -s /sbin/nologin -g sftp fw000015 useradd -d /home/sftpbacklog -s /sbin/nologin -g sftp fwpj
更改密码
echo fw000005:"sn%14347362"|chpasswd echo fw000015:"cn#94117178"|chpasswd echo fwpj:"gq$54650791"|chpasswd
更改配置文件 /etc/ssh/sshd_config
Subsystem sftp internal-sftp UsePAM yes Match Group sftp ChrootDirectory %h(%h代表用户的宿主目录) ForceCommand internal-sftp #(注意事项:想要实现禁锢宿主目录,需要把宿主目录的各级调整为 root:root,目录权限为755,然后在宿主目录的下一级建立一个目录,所有者为用户,所有组为 sftp,)
重启ssh
service sshd restart
更改目录权限
chmod -R 700 /opt/sftp/ chmod 755 /opt/sftp/* chmod 755 /opt/sftp/
\
\