2013-12-09 44 views
0

的Linux: 我已經打開了一個名爲管道 - 我可以看到命名管道常規文件

prw-rw-rw- usrA usrA 

但經過我一段時間,其更改爲普通文件

-rw-rw-rw- usrB usrB 

任何想法如何可以發生?所有權也改變了。 有趣的是USRA實際上比usrB

+3

似乎一個過程正在改變這一點。不用說,我們需要更多信息來回答 – hek2mgl

+0

如果你在一些代碼庫中工作,我最好的猜測是你的程序在某處錯誤地重新打開命名管道作爲常規文件。 – Donovan

+0

理解..但我想知道我該怎麼做 - 我怎麼才能將FIFO更改爲常規文件...然後我可以追溯它是如何發生的 – excalibur

回答

1

更權限的用戶通過重命名,如本例所示:

mkfifo foo 
ls -l foo 
touch bar 
mv bar foo 
ls -l foo 

或者這更簡單的例子:

mkfifo foo 
ls -l foo 
mv foo bar 
touch foo 
ls -l foo 

注意,重命名爲由設置在上的權限控制,該權限包含Unix和Linux中的一個或多個目錄,而不是由重命名的源或目標設置的權限。