linux vsftpd 配置文件chroot_local_user与chroot_list_enable的关系

chroot_local_user=YES       #是否将所有用户锁定在主目录,YES为启用 NO禁用.(包括注释掉也为禁用)
chroot_list_enable=YES     #是否启动锁定用户的名单 YES为启用  NO禁用(包括注释掉也为禁用)

chroot_list_file=/etc/vsftpd.chroot_list     #禁用的列表名单  格式为一行一个用户, 如果名单里面有一个ftpuser的用户, 则ftpuser用户不会锁定在主目录,用户将可以自由切换目录.

举例:

情况一:

现在有 ftp1  ftp2  ftp3 这三个ftp的用户, 想让1跟2用户锁定主目录不允许切换到其他目录, 但是允许3用户自由切换

那么/etc/vsftpd.chroot_list列表名单如下:

ftp3

也就说chroot_local_user=YES 并且 chroot_list_enable=YES 的时候
vsftpd.chroot_list名单里面添加的是排除锁定主目录的用户名单.

情况二:

如果chroot_local_user=NO 并且 chroot_list_enable=YES 的时候

那么/etc/vsftpd.chroot_list列表名单如下:

ftp1
ftp2

情况三:

如果chroot_local_user=YES 并且 chroot_list_enable=NO 的时候

那列表名单也就不生效了,

因此满足上面的条件时, 所有的FTP用户将全部锁定在主目录.

linux下vsftp使用chroot_local_user锁定目录

使用ftp软件登陆后发现用户可以随意切换到任意目录,结局办法是修改配置文件设置chroot_local_user=YES,开启目录的限制。
具体方法

[root@localhost home]# vi /etc/vsftpd/vsftpd.conf

找到#chroot_local_user=YES,去掉前面的#
或者chroot_local_user=NO 改成chroot_local_user=YES

ESC :WQ 保存成功

重启vsftpd服务
[root@localhost ~]# service vsftpd restart

登陆看问题是否解决

linux下vsftp 553 Could not create file错误解决办法

使用ftp软件登陆后解决了500 OOPS: cannot change directory:/home/这个问题后

再次登录又出现了这个错误提示:553 Could not create file
SELinux设置如下
查看SELinux设置
[root@localhost ~]# getsebool -a|grep ftp
allow_ftpd_anon_write –> off
allow_ftpd_full_access –> off
allow_ftpd_use_cifs –> off
allow_ftpd_use_nfs –> off
ftp_home_dir –> on
ftpd_connect_db –> off
ftpd_use_passive_mode –> off
httpd_enable_ftp_server –> off
tftp_anon_write –> off

解决办法是,需要设置allow_ftpd_full_access为on状态。

[root@localhost ~]# setsebool allow_ftpd_full_access on

查看SELinux设置
[root@localhost ~]# getsebool -a|grep ftp
allow_ftpd_anon_write –> off
allow_ftpd_full_access –> on
allow_ftpd_use_cifs –> off
allow_ftpd_use_nfs –> off
ftp_home_dir –> on
ftpd_connect_db –> off
ftpd_use_passive_mode –> off
httpd_enable_ftp_server –> off
tftp_anon_write –> off

重启vsftpd服务,测试可以登陆
[root@localhost ~]# service vsftpd restart