重新启动后,用于 RHEL 的 SELinux 不持久

use*_*487 5 selinux centos6 rhel6

所以在 Red Hat 考试中他们希望你使用 SELinux。例如,如果您安装 vsftp,则执行setsebool -P ftp_home_dir=1setsebool -P ftp_home_dir on允许服务器上的用户访问主目录。然后重新启动我注意到ftp_home_dir得到设置回off. 我是不是做错了什么?这是我的步骤:

  1. getsebool -a | grep ftp ? ftp_home_dir --> off

  2. setsebool -P ftp_home_dir on

  3. getsebool -a | grep ftp ? ftp_home_dir --> on

  4. 重启

  5. getsebool -a | grep ftp ? ftp_home_dir --> off

这是怎么回事?-P重启后不应该是持久的吗?

在 CentOS 6.5 和 RHEL 6.5 上尝试过这个,当然也更新了。任何建议表示赞赏。

更新,因为我无法回答我的问题

semanage boolean -m --on ftp_home_dir
Run Code Online (Sandbox Code Playgroud)

这将在重新启动后继续存在

Mic*_*ton 3

我刚刚在 CentOS 6.5 上尝试过此操作,但无法重现您所看到的行为。

# semanage boolean -l | head
SELinux boolean                State  Default Description

ftp_home_dir                   (off  ,  off)  Allow ftp to read and write files in the user home directories

# setsebool -P ftp_home_dir on

# semanage boolean -l | head
SELinux boolean                State  Default Description

ftp_home_dir                   (on   ,   on)  Allow ftp to read and write files in the user home directories

# reboot
The system is going down for reboot NOW!
Run Code Online (Sandbox Code Playgroud)

...

# semanage boolean -l | head
SELinux boolean                State  Default Description

ftp_home_dir                   (on   ,   on)  Allow ftp to read and write files in the user home directories
Run Code Online (Sandbox Code Playgroud)

根据官方文档,这当然应该是正确的做法。

幸运的是(!)正如您所发现的,SELinux 几乎总是有两种或更多完全不同的方法来做同样的事情。semanage还可以设置布尔值等。为什么会这样,我想只有丹·沃尔什知道……

semanage boolean -m --on ftp_home_dir
Run Code Online (Sandbox Code Playgroud)

既然你说这对你有用,我怀疑你的安装有一些不明显的问题。此时你可能永远不会知道它是什么。