RHEL 6
由于 SELinux,我尝试运行的某些东西失败了。问题暂时用 轻松解决setenforce 0
。然而,对于我来说,完全关闭 SELinux 并不是一个选择。
问题是这些文件是从旧的 Solaris 机器上安装的,并且加载的所有内容的上下文都是系统_u:对象_r:nfs_t:s0。我只需要修改从该机器安装的少数文件即可httpd_sys_content_t。
然而,任何这样做的尝试都会导致“不支持操作“。我尝试使用的命令是:
chcon -R -h -t httpd_sys_content_t /path/to/my/stuff
据我所知,这是因为该服务器的所有内容都安装为系统_u:对象_r:nfs_t:s0。作为 Solaris,我无法进入机器本身并使用 chcon,因为 SELinux 和 chcon 不存在。
我能想到的可行的解决方案是在这台机器上安装相同的软件,即RHEL 6
,将 Solaris 全部删除。我想知道这是否是我唯一的选择。
答案1
存在两个选项(在 SELinux 内):
1) 所有其他失败都audit2allow
可以将任何 SELinux 拒绝转换为允许的操作。
2) 我的建议是:启用 SELinux 布尔值以允许httpd_t
访问nfs_t
对象:
[root@ditirlns02 ~]# getsebool httpd_use_nfs
httpd_use_nfs --> off
[root@ditirlns02 ~]# setsebool -P httpd_use_nfs=1
[root@ditirlns02 ~]# getsebool httpd_use_nfs
httpd_use_nfs --> on
[root@ditirlns02 ~]#
安全上下文是由安装远程文件系统的机器设置的,因此 Solaris 基本上是不相关的。即使导出来自 RHEL,NFS 导出仍然会存在nfs_t
,对此您无能为力