搭建sftp,使用户只能访问特定的目录
1、创建sftp用户组
groupadd sftp
2、创建sftp用户test
useradd -g sftp -s /bin/false test
passwd test
#设置密码
3、创建目录为icap用户的根目录
mkdir /home/sftproot
usermod -d /home/sftproot test
chown root:root /home/sftproot
chmod 755 /home/sftproot
#这个根目录必须是root用户所有,且权限必须是755
mkdir /home/sftproot/shared
chown test:sftp /home/sftproot/shared
chmod 755 /home/sftproot/shared
注意:这个根目录最后就放到/home目录下,不能放到其他用户的目录下,否则后面连接时总是报client_loop: send disconnect: Broken pipe这个错误
4、编辑配置文件/etc/ssh/sshd_config
注释掉下面这行配置
#Subsystem sftp /usr/libexec/openssh/sftp-server
然后在文件最后添加如下几行内容
Subsystem sftp internal-sftp
Match User icap
ChrootDirectory /home/sftproot
ForceCommand internal-sftp
PasswordAuthentication yes
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
5、关闭selinux(若有的话)
setenforce 0
6、重启sshd服务
systemctl restart sshd
7、验证sftp登录
sftp icap@127.0.0.1
参考文档:https://blog.csdn.net/qq_35623011/article/details/85003109