记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

新版vsftp的chroot设置问题

新版vsftp的chroot设置问题

一直用的vsftpd作为ftp服务器,最近升级了一下ubuntu系统,vsftpd版本升为 2.3.5-1 , 然后用原来的配置文件,结果发现登陆的时候出现问题:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
意思是,如果开启了chroot来控制用户路径,则用户不能再具有该用户根目录的写的权限。
解决办法1:
去掉该用户根目录的写的权限,再新建一目录,以后用新目录
#sudo chmod a-w /home/用户名
#sudo mkdir /home/用户名/新目录名
其实很不方便,用户登陆进去会发现必须要再进一层目录才能找到自己的文件

如果非要保证ftp用户根目录可写,
解决办法2:
在vsftpd.chroot_list上写进去我们不要限制的用户,其他用户则不让他们“漂移”。一个用户名一行
sudo vim /etc/vsftpd.chroot_list
但这样也有风险,这个ftp用户可以去浏览系统其它目录了,失去了chroot设置意义了。

 

 

 

在使用VSFTP管理FTP SERVER服务器时, 为了方便用户的上传下载指定的资料, 需要对用户的目录进行指定, 也就是说只能让用户访问指定的目录, 不能访问之外的其他目录. 这个需要在VSFTPD配置文件进行相应的设置, 一般来说, 默认的是每个用户只能访问/home/username目录下的文件, 但是作为服务器来讲, 把网站文件存到各自的目录下有点不现实, 比如说TOM和JACK两个用户同时具有访问某一个指定的目录,比如说网站的根目录/var/www/, 这样的话, VSFTPD的默认的配置文件就无法实现这样的功能了, 而这个功能又是在网站的文件管理过程中又非常实用. 下面我们就着手进行这方面的配置, 为方便突出重点, 我们只讨论有关这个需求的几个参数, 其他的参数选项可参考这篇文章;

要达到此项需求, 主要用到chroot_local_user,chroot_list_enable, local_root, vsftp.chroot.list,这几个参数,  其中在UBUNTU系统中, 参数local_root需要手动在配置文件(vsftp.conf)中添加,vsftpd.chroot_list需要在/etc添加新文件(mkdir /etc/vsftpd.chroot_list)(针对ubuntu版本). 

 基于chroot_local_user,chroot_list_enable这两项决定着它的整个功能的实现, 其参数值是YES,NO, 根据排列组合原理可以得出4种不同的设置方法, 它们共同决定着vsftpd.chroot_list中定义的用户的访问权限及是否漂移(也就是能否访问指定目录外的其他文件), 这里又分两种情况, 第一种情况是在vsftpd.chroot_list定义的用户(list用户), 第二种是vsftpd.chroot_list(简称非list)

下面是四种情况这两用户组的访问情况(再次说明, 默认其他的vsftpd.conf参数已经设置完成的情况)

第一种情况:

chroot_local_user=YES

chroot_list_enable=YES

效果: list用户组漂移, 非list用户组固定

第二种情况:

chroot_local_user=YES

chroot_list_enable=NO

效果: list用户组固定, 非list用户组固定

 第三种情况:

chroot_local_user=NO

chroot_list_enable=NO

效果: list用户组漂移, 非list用户组漂移

第四种情况:

chroot_local_user=NO

chroot_list_enable=YES

效果: list用户组固定, 非list用户组漂移

根据以上四种情况来选择需要的模式, 对于大多数朋友来说, 可能第四种的用法比较广泛一些, 就我的用户需求来看, 我选择第二种情况, 所有的用户访问权限都固定在同一个目录下, 这个目录是由local_root属性值来确定的. 这个值的定义要用绝对路径来定义, 如下例:

local_root=/var/www

就我的情况来说, 所有的用户都能访问到这个目录, 但是还有一点需要说明的是, 虽然这样, 由于vsftpd对于安全性的要求比较高一些, 所以你所设置这个主目录不能有写权限, 否则会出现如下的错误提示:

500 OOPS: vsftpd: refusing to run with writable root inside chroot

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):