2014-04-28 151 views
0

我需要將rpm文件的權限設置爲命名管道。rpmbuild中的命名管道

我們用一些花哨的rpm魔術(%postun,%triggerin和%triggerun用於mpve保留舊配置文件並在需要時恢復m)部署配置文件。 作爲Icinga分佈式設置配置的一部分,我想在rpm安裝中更改文件的權限,但是我無法找到需要提供給''attr''宏的值。

的flie是:

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的模式和權限是否良好的循環,但是我沒有預見到一系列複雜的問題,我會在這裏放棄這個想法

+0

作爲命名管道的屬性不是權限屬性。問題是如何在RPM中創建命名管道,或者如何將命名管道的屬性設置爲%files部分的一部分? –

+0

如果我明白你在問什麼,我認爲你正在尋找'%attr(0666,icinga,icingacmd)/ var/spool/icinga/cmd/icinga.cmd'?如果沒有,請不要理會這個評論。另一方面,應用程序可能會在啓動時重新創建指定的文件,並且權限可能會有所不同。 – alvits

+0

僅當應用程序不存在時,該應用程序纔會重新創建命名管道。我正在考慮修改nsca deamon的rpm,使其與icinga用戶一起運行。 – Bruno9779

回答

1

您不能更改文件在運行時使用包創建/刪除。因此設置了組sticky(g + s 2755)位,允許守護進程繼承父目錄的組。這樣,命令管道可由icingacmd組寫入(0660)。如果您的應用程序用戶(通常是Web應用程序的icinga或apache)在該組中,則不會有任何問題。對於icinga和apache用戶來說,rpms已經很小心了(比如經典的ui需要這樣做)。 nsca軟件包afaik以用戶nagios的身份運行,必須將其放入icingacmd組(或者您將考慮將用戶nsca作爲運行方式更改爲icinga或另一個位於icingacmd組中的新組件)。

+0

最後我發現/etc/nagios/nsca.cfg把用戶改爲了icinga。這就是我需要做的。 – Bruno9779