红联Linux门户
Linux帮助

vsftpd匿名用户登录显示空白页问题

发布时间:2017-04-07 10:20:29来源:blog.csdn.net/liuxu0703作者:_Lyux
问题:
本来内网 ftp 用的好好的, 突然某天匿名用户就无法通过浏览器访问 ftp 了.
 
尝试解决:
检查 vsftpd 配置:
出现这个问题首先肯定要查看 vsftpd 配置. 我使用 CentOS 6.5, 这个配置文件位置如下:
/etc/vsftpd/vsftpd.conf
重点检查如下两个参数设置是否正确:
anonymous_enable=YES
anon_root=/ftp_public
第一个参数为是否允许匿名用户登录 ftp;
第二个参数为匿名用户登入后显示的目录, 也是其可以浏览的根目录.
检查的结果是, 木有问题.
 
检查 selinux 配置:
然后怀疑 selinux 配置是否被人改了. 敲入如下命令:
$ 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_fusefs --> off
ftpd_use_passive_mode --> on
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_use_cifs --> off
tftp_use_nfs --> off
看起来也木有问题. 也尝试把某些参数打开, 但没有效果.
设置打开某项 selinux 配置命令: setsebool allow_ftpd_full_access on
ftp 出现疑似权限问题时, 可以查看并尝试打开某些 selinux 选项.
selinux 还有一个目录权限相关的配置. 尝试执行如下命令:
chcon -R -t public_content_t /ftp_public
chcon 用于修改某对象的安全上下文. 上面那句就是说, 设置要把某目录对匿名用户 (nobody) 开放.
但就这个问题来说, 这个方法也没能解决问题.
 
检查目录权限:
然后开始怀疑是 ftp_public 目录权限问题. ls -al 查看发现该目录权限为 777. 这个权限已经是最大了, 应该也没问题.
 
最终原因:
各种方法无果, 开始找搜索帮忙. 浏览并尝试了各种解决方案, 最终找到了解决我问题的方案[附]:
把 ftp_public 目录权限由 777 改为 755 , 问题解决.
这估计是哪位兄弟图省事, 为了达成某个功能, 而把这个目录直接赋予了最大权限. 没想到最大权限反而有问题.
看提到的原因, 是说配置中匿名用户没有写权限, 因此匿名用户无法登录到有写权限的目录中.
另一个碰到过的类似的例子是, 给 Git 配置的 ~/.ssh/id_rsa.pub 公钥文件不可以具有执行权限, 否则 git 会认为该公钥是无效的.
这两个故事教育我们, Linux 文件权限绝不是大就可用, 除非明确知道自己要做什么, 否则不要给文件赋予 777 权限.
 
附:
vsftpd匿名用户登录显示空白页问题
 
本文永久更新地址:http://www.linuxdiyf.com/linux/29806.html