标签:vsftpd 替代 targe vps ber lib64 .com 子目录 vts
需求:使用sftp替代vsftpd,要求用户没有权限登录操作系统,并且只能在指定目录进行上传下载。
使用 sftp 的 chrootdirectory 功能。
注释掉原来的Subsystem一行,添加以下三行就可以了.Subsystem指定sftp的处理方式.Match在sshd_config中用来指定条件的,后面可以跟group也可以跟ip,也可以三者或者两者同时出现.要注意的是,match所匹配的用户受match以后的语句影响,直到文件尾或者下一个match.ChrootDirectory就是指定匹配的用户登陆以后所在的目录了,这里还可以加%u和%h分别指代用户名和家名.
1
2
3
4
5
6
7
|
#vim /etc/ssh/sshd_config #Subsystem sftp /usr/lib64/ssh/sftp-server Subsystem sftp internal- sftp Match User xx ChrootDirectory /chroot #rcsshd restart #useradd xx && echo “a”|passwd –stdin xx |
目录权限设置上要遵循2点:
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755。
由于上面设置了目录的权限是755,因此所有非root用户都无法在目录中写入文件。我们需要在ChrootDirectory指定的目录下建立子目录,重新设置属主和权限。
1
2
3
4
|
#mkdir /chroot #chmod 755 /chroot #mkdir –p /chroot/xx #chown xx.users /chroot/xx |
测试如下:
xx用户的shell 为 /bin/bash ,理论上是可以登录操作系统的,为什么会提示/bin/bash: No such file or directory 后关闭连接呢?
因为前面的Match 语句已经将xx 用户限定只能在 /chroot 目录下活动,xx通过ssh登录系统后会去查找 /bin/bash,即 /chroot/bin/bash ,这个目录是不存在的,所以无法登录。
标签:vsftpd 替代 targe vps ber lib64 .com 子目录 vts
原文地址:http://www.cnblogs.com/fsckzy/p/7827525.html