转至:
sftp 限制用户登陆指定目录(家目录)
限制 sftp 用户登陆后,只能在家目录下活动,不能到其他或上级目录,可以按照下面方法进行操作:
一、升级ssh软件,版本必须在 4.8 以上;
二、备份配置文件:(以下所有命令,都需要使用root用户来执行)
2 | mv sshd_config sshd_config.bak |
3 | mv sshd_config.rpmnew sshd_config |
三、修改 /etc/ssh/sshd_config
1 | #Subsystem sftp /usr/libexec/openssh/sftp-server (这行必须注释掉) |
2 | Subsystem sftp internal-sftp |
4 | ChrootDirectory /chroot/%u |
5 | ForceCommand internal-sftp |
说明:本配置中,ChrootDirectory 是 /chroot/%u,匹配这个规则的组名为 chroot,所以以后添加需要限制活动目录的用户时,必须属于chroot这个组;
四、建立相关目录,添加用户和组,这里以work用户为例:
4 | useradd -d /chroot/work -g chroot -s /bin/false work |
6 | chown root /chroot/work |
说明:在/chroot目录下,用户家目录 work 的属主必须是root,而不能是用户本身,属组的话,必须是chroot,权限 750
(需要注意的是,新建用户的家目录,权限是700,但这样sftp登陆的话,是看不到目录下的列表的,所以,必须是750的权限) 例如:
1 | drwxr-x--- 7 root chroot 4096 Aug 5 13:23 work |
五、如果需要上传文件,则按照下面执行:
3 | chmod a+w upload -R upload |
其中,upload目录为可读写权限,可以用来上传,pub目录为只读权限,可以用来下载。
六、测试
阅读(18903) | 评论(0) | 转发(0) |