SELinux安全限制导致vsftpd无法进入用户目录的解决方法

系统环境:CentOS 5.3, vsftpd 2.0.5
登录时提示类似如下的错误:

C:\Documents and Settings\sdz>ftp 192.168.128.128
Connected to 192.168.128.128.
220 (vsFTPd 2.0.5)
User (192.168.128.128:(none)): web
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/var/www/html
Login failed.
ftp> bye
500 OOPS: child died

这常常是因为SELinux不允许vsftpd线程访问用户主目录造成的。解决方法为:
使用root用户登录,然后执行以下命令来赋予权限:
setsebool -P ftp_home_dir 1
然后重启vsftpd服务:
service vsftpd restart

最后我们来检查一下SELinux配置:getsebool -a | grep ftp

allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> on
ftpd_disable_trans --> off
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off
tftpd_disable_trans --> off

ftp_home_dir的值已经是on了,然后再尝试FTP登录,就可以成功登录了:

C:\Documents and Settings\sdz>ftp 192.168.128.128
Connected to 192.168.128.128.
220 (vsFTPd 2.0.5)
User (192.168.128.128:(none)): web
331 Please specify the password.
Password:
230 Login successful.
ftp> bye
221 Goodbye.
发表评论?

8 条评论。

  1. 我不是来看文章的,我是路过的..哈哈.

  2. 呵呵, 收藏了,虽然目前我没遇到这个问题。

  3. 嗯 上线看下链接能否换成图文的 谢谢。 呵呵

    http://it-my.com/sinsky/links

    这有链接说明

  4. 之前iptables阻止了外界访问httpd
    做个友链哈,已经做好了~

  5. 站长您好,我想跟您做个友情链接,我的是新站,不要嫌弃哟!过段时间Linux的资料会整理出来。
    /贵站链接已做好。

  6. @sinsky
    链接描述已编辑,但是很抱歉不能做图片链接,呵呵

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>