关于vsftpd配置,限制用户访问家目录

时间:2024-05-19 14:25:22

打开vsftpd.conf看到如下关键几行: 注释大意就是,如果chroot_local_user=yes,那么chroot_list_file(默认保存具有改变根目录权限的用户)作用取反,显然 不够清晰 。于是man了一下帮助,就很明确 了。


关于vsftpd配置,限制用户访问家目录


关于vsftpd配置,限制用户访问家目录


个人对man下的帮助进行了翻译解读与测试,成功通过。最后总结出以下


if(chroot_local_user==yes)
    所有用户被限制家目录
if(chroot_list_enable==yes)
    chroot_list_file生效(chroot_list_file只与chroot_list_enable关联).且存放限制家目录访问的用户(为空会报错)

if(chroot_local_user==yes&&chroot_list_enable==yes)
    chroot_list_file 作用取反

打开SELinux后,SELinux会阻止ftp daemon读取用户home目录。所以FTP会甩出一句 “500 OOPS: cannot change directory”。无法进入目录,出错退出。
问题解决:
setsebool ftp_home_dir on

总结,最简单解法:
chroot_local_user==yes  //所有用户限制跨越根目录

chmod u-w /home/xxx     //待登陆用户家目录去掉w权限,否则会报错提示,不允许写权限

setsebool ftp_home_dir on  //设置SELINUX