【问题标题】:named pipe in rpmbuildrpmbuild 中的命名管道
【发布时间】:2014-06-14 09:30:18
【问题描述】:

我需要将 rpm 中文件的权限设置为命名管道。

我们使用一些花哨的 rpm 魔法部署配置文件(%postun、%triggerin 和 %triggerun 用于 mpve 旧配置文件并在需要时恢复 m)。 作为 Icinga 分布式设置配置的一部分,我想在 rpm 安装过程中更改文件的权限,但我找不到需要提供给“%attr”宏的值。

苍蝇是:

ll /var/spool/icinga/cmd/icinga.cmd
prw-rw-rw- 1 icinga icingacmd 84 Apr 28 13:40 /var/spool/icinga/cmd/icinga.cmd

编辑:

实际问题是我有 icinga.cmd 权限 prw-rw---,但我需要它是 prw-rw-rw-。 实际文件是由具有上述权限的 icinga 进程创建的。我试图自动化 chmod,包括一个检查 FIFO 的模式和权限是否良好的循环,但是有一系列我没有预见到的复杂情况,我将在这里放弃这个想法

【问题讨论】:

  • 作为命名管道的属性不是权限属性。问题是如何在 RPM 中创建命名管道,还是如何将命名管道的属性设置为 %files 部分的一部分?
  • 如果我明白你在问什么,我想你在找%attr(0666, icinga, icingacmd) /var/spool/icinga/cmd/icinga.cmd?如果没有,请忽略此评论。另一方面,应用程序可能会在启动时重新创建命名文件,并且权限可能不同。
  • 只有当命名管道不存在时,应用才会重新创建命名管道。我正在考虑修改 nsca 守护程序的 rpm 以使其与 icinga 用户一起运行。

标签: rpm rpmbuild


【解决方案1】:

您不能更改在运行时使用包创建/删除的文件的权限。因此设置了 group sticky (g+s 2755) 位,允许守护进程继承父目录的组。这样,icingacmd 组就可以写入命令管道(0660)。如果您的应用程序用户(通常是 icinga 或 web 应用程序的 apache)在该组中,那么您不会有任何问题。对于 icinga 和 apache 用户,rpms 已经很小心了(例如,经典 ui 需要这样做)。 nsca 包 afaik 以用户 nagios 运行,必须将其放入 icingacmd 组(或者您将考虑将运行的用户 nsca 更改为 icinga 或其他新用户,该用户位于 icingacmd 组中)。

【讨论】:

  • 最后我发现 /etc/nagios/nsca.cfg 将用户更改为 icinga。这就是我需要做的。
猜你喜欢
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多