本文首发于微信公众号bu2师父现同步发布至 CSDN。在Linux虚拟机上搭建FTP服务时要实现本地用户认证有一段这样的配置#允许本地用户登录本地用户即Linux系统上的用户local_enableYES#本地用户的根目录即本地用户登录FTP服务后进入的目录local_root/var/ftp#限制本地用户在根目录local_root参数指定的目录上chroot_local_userYES#启用chroot列表列表里的用户不会被限制在根目录上chroot_list_enableYES#指定列表文件的路径该文件中的用户不受限制chroot_list_file/etc/vsftpd/chroot_list这些配置都比较容易理解但是还有另外一个参数allow_writeable_chroot。书上要求设置allow_writeable_chrootYES那这个参数到底是什么含义呢于是有了下面的尝试。一、配置创建两个用户zhangsan1和zhangsan22、编辑/etc/vsftpd/vsftp.conf把本地用户禁锢在FTP家目录/var/ftp中但是chroot_list文件中的用户例外它们可以自由切换至FTP服务器的其他目录例如/tmp等。3、编辑/etc/vsftpd/chroot_list综上的配置效果是zhangsan1登录FTP服务器不会受限在/var/ftp目录可以自由切换但是zhangsan2会被禁锢在/var/ftp目录下。zhangsan1和zhangsan2对/var/ftp目录的权限是r-x即可读可执行。二、验证1、当zhangsan1和zhangsan2对/var/ftp目录的权限是r-x并且未配置allow_writeable_chrootzhangsan1和zhangsan2都可以正常登录FTP。2、当zhangsan1和zhangsan2对/var/ftp目录的权限是rwx并且未配置allow_writeable_chrootzhangsan1可以正常登录但是zhangsan2无法登录。3、当zhangsan1和zhangsan2对/var/ftp目录的权限是rwx并且配置allow_writeable_chrootYESzhangsan1和zhangsan2都可以正常登录FTP。三、结论1、对于未被禁锢在FTP家目录的本地用户allow_writeable_chroot参数没有任何影响。2、对于被禁锢在FTP家目录的本地用户如果该用户对家目录没有w权限那么allow_writeable_chroot是否配置对用户的登录没有影响但是如果该用户对家目录拥有w权限那么必须配置allow_writeable_chrootYES否则该用户无法正常登录FTP。