我想知道是否有可能使用chcon使CentOS 7服务器的安全性低于SELinux处于Permissive模式时的安全性.我本质上是尝试使用Nginx设置Phusion Passenger以使用rbenv(一个Ruby版本管理器,它基本上在用户的主目录中安装Ruby库,二进制文件,库等)安装的Ruby版本,用于不是sudoer的用户.我使用像setroubleshoot-server这样的工具来解决各种问题,例如那些使用SELinux布尔的问题,除了这些工具没有帮助我诊断安装在特定用户主目录中的Ruby版本的问题.一切都适用于Phusion Passenger和Nginx:
>使用系统范围的Ruby(v2.0)安装(SELinux在强制模式下)
>使用rbenv安装Ruby(v2.2.3)(SELinux处于许可模式)
>运行以下命令后使用rbenv安装Ruby(v2.2.3)(执行模式下的SELinux):
chcon -R –reference / bin /home/myuser/.rbenv/
请注意,我在配置更改之间重新启动服务器以验证观察到的行为.
我觉得我本质上绕过SELinux,使用chcon来更改包含rbenv Ruby版本的文件夹的安全上下文,使其具有与/ bin文件夹相同的安全上下文.以这种方式使用chcon是否会产生任何意外的安全后果?
这可能超出了问题的范围,但有没有一种正确的方法来设置安装在用户主目录中的Ruby解释器的安全上下文,以便与Nginx和Phusion Passenger一起使用?
解决方法:
SELinux默认拒绝任何未明确允许的内容.当SELinux在许可模式下运行时,SELinux会记录权限拒绝但不强制执行(即SELinux不会阻止任何操作完成).在强制模式下,SELinux会记录并强制执行权限拒绝(即SELinux阻止操作完成).
使用chcon实际上绕过SELinux并不会使您的系统比在许可模式下使用SELinux更不安全,因为执行模式下的SELinux仍然会拒绝您未使用chcon接触的系统的所有其他部分的操作.