Red Hat 4.8.5下配置sftp且限制用户访问目录
1、创建用户并设置分组
groupadd ftp
useradd nnftp
passwd nnftp
usermod nnftp -g ftp
mkdir -p /data/ftpdata/nnftp
usermod nnftp -d /data/ftpdata/nnftp
2、修改配置文件/etc/ssh/sshd_config,在文件末尾添加以下内容:
1)注释掉这行
#Subsystem sftp /usr/libexec/openssh/sftp-server
2)文件末尾增加以下内容
Subsystem sftp internal-sftp
# This section must be placed at the very end of sshd_config
Match Group ftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
3、执行以下命令,重启服务
systemctl restart sshd
4、尝试SFTP登录
sftp -oPort=22 nnftp@10.0.3.23
输入FTP用户密码后,连接关闭,提示:packet_write_wait: Connection to 10.0.3.23 port 22: Broken pipe
5、查看系统日志
tail -300 /var/log/secure
看到SFTP登录信息有如下错误:
fatal: bad ownership or modes for chroot directory component “/data/ftpdata/nnftp/” [postauth]
判断可能是目录权限问题,执行以下命令:
chown root:ftp /data/ftpdata/nnftp
再次尝试SFTP登录成功!
备注
目录权限设置上要遵循2点:
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是755。