当前位置: > Linux服务器 > ftp >

vsftpd锁定用户目录[ubuntu, ftp server, vsftpd.conf]

时间:2014-07-19 22:36来源:linux.it.net.cn 作者:it

在使用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

http://linux.it.net.cn/e/server/ftp/2014/0719/3197.html


(责任编辑:IT)
------分隔线----------------------------