日期:2014-05-16  浏览次数:20912 次

Linux_ftp禁止用户跳转出自身目录的配置实验

?

以下配置实验是针对chroot_local_user、chroot_list_enable、chroot_list_file和/etc/vsftpd.chroot_list这四项做出的。

?

如果想要某用户peo(注:默认的普通用户,只属于users组)禁止访问除自己目录以外的其它目录,那么设置如下:

?

方案一、首先修改配置文件vsftpd.conf,将其中默认的“#chroot_list_enable=YES”、“#chroot_list_file=/etc/vsftpd.chroot_list”这两项前面的“#”注释掉。接者在/etc下新建文件vsftpd.chroot_list,并向其中添加禁止访问到系统根目录/(也就是一般意义上不可以chroot())的用户peo。这样添加进去的用户peo就只具有在本用户目录中访问而不具有查看除此以外其它目录文件的权限。这步完成后重启vsftpd服务即可实现预期设置。

?

方案二、首先修改配置文件vsftpd.conf,将其中默认的“#chroot_local_user=YES”、“#chroot_list_enable=YES”、“#chroot_list_file=/etc/vsftpd.chroot_list”这三项前面的“#”注释掉,并将“chroot_local_user=YES”中的“YES”更改为“NO”。接者在/etc下新建文件vsftpd.chroot_list,并向其中添加禁止访问到系统根目录/(也就是一般意义上不可以chroot())的用户peo。这样添加进去的用户peo就只具有在本用户目录中访问而不具有查看除此以外其它目录文件的权限。这步完成后重启vsftpd服务即可实现预期设置。

?

方案三、首先修改配置文件vsftpd.conf,将其中默认的“#chroot_local_user=YES”、“#chroot_list_enable=YES”、“#chroot_list_file=/etc/vsftpd.chroot_list”这三项前面的“#”注释掉。接者在/etc下新建文件vsftpd.chroot_list,并向其中添加可以访问到系统根目录/(也就是一般意义上可以chroot())的用户peo。这样,用户peo就可以通过chroot()进行跳转到系统根目录/等相关操作,而未被添加进去的其它用户就只具有在本用户目录中访问,并不具有查看除此以外其它目录文件的权限。这步完成后重启vsftpd服务即可实现预期设置。

?

通过对比以上实验的配置可以看出,vsftpd对登陆用户默认的chroot()功能是不被允许的,也就是说去掉“#chroot_list_enable=YES”、“#chroot_list_file=/etc/vsftpd.chroot_list”这两项前面的“#”后,再添加到vsftpd.chroot_list的用户即是被禁止跳转出本用户目录的,其只能在其用户自身的目录范围内活动。

?

另:

1、通过实验发现,单纯地修改vsftpd.chroot_list文件中的内容并不用重启vsftpd服务即可使相应的配置生效。

2、将vsftpd.conf中的“anonymous_enable=NO”设置为“YES”并重启vsftpd服务后,启用了anonymous账户登陆,密码为任意值,登录路径为“/srv/ftp”。默认权限为只能下载不能上传,也不能跳转出本目录。默认可以登录的账号为“anonymous”和“ftp”,密码任意。

?

?

实验环境:Ubuntu Desktop 8.04.4,Ubuntu Server 10.04

QQ:81064483

E-mail:AllenNewOK@126.com

?

版权声明:若要转载,需征得作者AllenNewOK的同意,必须以超链接形式标明文章原始出处和作者。

?