SELinux配置引起ftp登录不了

问题:ftp登录不了 500 OOPS: cannot change directory:/home/ftpnms

原因:SELinux配置成enforcing

经检查ftp用户添加没有问题

用以下两个命令之一查看ftp_home_dir 状态,发现状态为off,要改成on

# sestatus -b | grep ftp_home_dir

ftp_home_dir                                off

# getsebool  -a | grep  ftp_home_dir

ftp_home_dir --> off

 

解决方法(1)

setsebool -P ftp_home_dir  on   -> -P表示重新开机后也为on

 

[root@xxx home]# service vsftpd stop

Shutting down vsftpd:                                      [  OK  ]

[root@xxx home]# setsebool -P ftp_home_dir on

[root@xxx home]# getsebool  -a | grep  ftp_home_dir

ftp_home_dir --> on

[root@xxx home]# service vsftpd start

Starting vsftpd for vsftpd:                                [  OK  ]

[root@xxx home]# service vsftpd status

vsftpd (pid 37980) is running...

然后从别的服务器ftp就能行了

 

解决方法(2)

查看该xxx server 的SELinux配置

[root@xxx ~]# getenforce

Enforcing

把 /etc/sysconfig/selinux中的 “SELINUX=enforcing” 改成 “SELINUX=disabled”,重启后生效

 

附:关于SELinux

参考资料:Linux SELinux笔记整理 https://blog.51cto.com/13570193/2093299

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux。

SELinux 有三种工作模式,分别是:

1. enforcing:强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中。

2. permissive:宽容模式。违反 SELinux 规则的行为不被阻止、但会记录到日志中。

3. disabled:关闭 SELinux。

SELinux 工作模式可以在 /etc/selinux/config 中设定。

从 disabled 切换到 enforcing / permissive 需要重启系统,反之亦然。

enforcing 和 permissive 模式可以通过 setenforce 1|0 命令快速切换。

1)setenforce 1 — SELinux以强制(enforcing)模式运行 
2)setenforce 0 — SELinux以警告(permissive)模式运行

你可能感兴趣的:(Linux)