为公司用vsftpd搭建了一台ftp服务器,由于有很多用户要访问,为了安全起见需要把ftp用户的访问限制在自己的目录下。为了避免使用虚拟机ftp用户的繁琐,就是用了本地帐户。以其中一个用户test001为例,不允许用户登录系统;

test001:x:501:500::/home/test001/:/sbin/nologin

而 在vsftpd服务器的默认设置中,本地用户可以切换到主目录以外的目录进行浏览访问,并且登录ftp后能看到自己主目录的绝对路径,这样对于服务器来说 是不×××全的,因为任何用户可以随时浏览到别的用户的私有文件,并有可能把别人的文件下载下来。接下来是使用chroot选项来限制用户的访问目录,并且 是用户组登录ftp后看到的是一个相对路径。

vsftpd中与chroot功能相关的选项主要包括3个参数:

chroot_list_enable=YES #如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录。 YES为启用  NO禁用(包括注释掉也为禁用)

chroot_list_file=/etc/vsftpd/chroot_list #指定限制的用户文件

chroot_local_user这个参数在配置文件中是没有的,需要的时候要手动添加。 是否将所有用户锁定在主目录,YES为启用 NO禁用.(包括注释掉也为禁用)
可以通过如下两种方法来设置chroot,从而杜绝不安全的情况发生:

(1)设置所有的本地用户执行chroot,只要将/etc/vsftpd/vsftpd.con文件中的chroot_local_ user值置为YES,即chroot_local_user=YES。

(2)设置指定的用户执行chroot,按照如下方法进行设置:

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
设置后,只有/etc/vsftpd.chroot_list文件中指定的用户才能够执行chroot命令。

建议使用第一种,默认所有用户都启动chroot功能,只用添加到chroot_list中的用户才不启动chroot。这样也能使登录到ftp的用户看到自己的主目录为相对路径。