SELinux 警报:为什么启动进程名称被截断?

SELinux 警报:为什么启动进程名称被截断?

我有一项hdparm-noapm.service服务ExecStart=/ansible-managed/sourcejedi.hdparm-noapm/hdparm.sh。感谢 SELinux,它被拒绝了。 SELinux 错误弹出窗口 (sealert) 显示

  • 源进程:(dparm.sh)
  • 尝试此访问:执行
  • 在此文件上:hdparm.sh

为什么第一个字母被删掉了?

答案1

如果我在 .avc 中找到它,AVC 会显示相同的进程名称/var/log/audit/audit.log。所以这不是 GUI 中的错误。

这里有两点。首先,在exec使用程序之前,为服务创建的 systemd 进程会“重命名”自身。

其次,它不会为进程名称分配任何额外的空间,因此它的长度不能超过/sbin/init. (面对内核init=选项的行为留给读者作为练习)。程序名称的结尾被认为比开头更值得保留,因为“第一位可能只是‘systemd-’”。

根据 TODO,这将通过“PR_SET_PROCTITLE_AREA 如果它在内核中可用”来解决,即它将避免截断进程名称的需要。

https://github.com/systemd/systemd/blob/782c925f7fa2e6e716ca9ac901954f3349d07ad8/src/core/execute.c#L1237

相关内容