Fedora 文档中的一个页面描述了一个 SELinux 上下文问题,示例如下:
“...而不是使用 /var/www/html/ 作为网站,管理员想要使用 /srv/myweb/。... [但是] SELinux 阻止 Apache HTTP 服务器 (httpd) 访问 [错误标记的文件和目录]”
任何使用 SELinux 的人都知道,SELinux 对错误消息没有帮助。发现正确上下文的一种方法是使用matchpathcon(从页面下方)
matchpathcon 命令检查文件路径的上下文并将其与该路径的默认标签进行比较。以下示例演示在包含错误标记文件的目录上使用 matchpathcon:
$ /usr/sbin/matchpathcon
-V/var/www/html/*
/**EDIT:根据要求,使用 httpd 的示例上下文matchpathcon,将公共 www 目录内容的用户、角色和类型报告为:
[root@mrwizard ~]# /usr/sbin/matchpathcon /var/www/html/*
/var/www/html/info.php system_u:object_r:httpd_sys_content_t:s0
Run Code Online (Sandbox Code Playgroud)
如果——这只是一个说明,而不是正确使用这个命令——你对 httpd 的二进制文件执行相同的命令,你会发现类型不是 httpd 内容类型,而是 httpd 执行类型,我猜,SysV(在CentOS6上)用来启动httpd:
[root@mrwizard ~]# /usr/sbin/matchpathcon /usr/sbin/httpd /usr/sbin/httpd system_u:object_r:httpd_exec_t:s0
的matchpathcon输出是不对称的; 它无助于管理员对 SELinux 用户、角色和类型进行故障排除,并将服务作为输入以获取 SELinux 默认上下文作为输出。**/
如果 matchpathcon 检查正确配置目录的 SELinux 上下文,那么在服务上使用的相反过程是什么?换句话说,是否有反向检查/usr/sbin/httpd?
我问这个是出于谨慎。当服务器正在工作但现在坏了时,这一步似乎很有用。但是,如果您正在安装系统并决定在安装早期将某些内容放在错误的位置,那么正确的 SELinux 上下文目录可能不存在。对?那么除了服务之外,你会检查什么来发现正确的 …
我有一个运行 CentOS 的小型项目服务器沙箱。
设置一个新的服务器包时,我意识到我需要将新目录添加到路径中,并且发现$HOME主用户有一个尾部斜杠。
我找不到这个设置在哪里。它不在,
~/.bashrc
~/.bash_profile
/etc/bashrc
/etc/profile.d
Run Code Online (Sandbox Code Playgroud)
还有其他建议吗?