如何让 SELinux 允许访问文件?

Uta*_*ead 2 selinux

我有一个我公司拥有的专有软件需要访问根级文件。我们将称之为它,/secfile因为它与安全/许可证相关。系统运行一个守护进程,将更新的信息写出到/secfile. 这个守护进程,如果被阻止更新/secfile,就会使有问题的许可证无效,因为它假定犯规。

如何强制 SELinux 允许驻留在 的守护进程/bin/secdaemon访问/secfile

唯一需要访问(当前不受限制)的其他应用程序/secfile/usr/bin/licensemanager.

nKn*_*nKn 7

好吧,最简单的方法是禁用 SELinux,但我不建议这样做:

setenforce 0
Run Code Online (Sandbox Code Playgroud)

或者您可以创建一个规则,以允许它写入、运行或任何它需要执行的操作,但目前已被阻止。为此,请检查您的系统日志文件并复制“拒绝”的行,它应该是这样的:

audit(...): avc:  denied  { write } for  pid=27984 comm="httpd" name="httpd" dev=sda6 ino=307469 scontext=root:system_r:httpd_t:s0 tcontext=system_u:object_r:usr_t:s0 tclass=...
Run Code Online (Sandbox Code Playgroud)

复制它并运行以下命令:

audit2allow -M local << _EOF_
(paste the content)
_EOF_
Run Code Online (Sandbox Code Playgroud)

然后,运行:

semodule -i local.pp
Run Code Online (Sandbox Code Playgroud)

这将为它创建一个永久规则,因此您不需要禁用 SELinux。

  • 忘了提:你可以一次性抓取并粘贴**所有**“拒绝”的行,只需用 `_EOF_` 行结束粘贴,`audit2allow` 命令将在 `local. pp`文件。 (2认同)