Linux 命名管道到常规文件
Linux: 我打开了一个命名管道-我可以看到Linux 命名管道到常规文件,linux,named-pipes,fifo,Linux,Named Pipes,Fifo,Linux: 我打开了一个命名管道-我可以看到 prw-rw-rw- usrA usrA 但我一段时间后,它变成了一个常规文件 -rw-rw-rw- usrB usrB 你知道怎么会这样吗?所有权也发生了变化。 有趣的是,通过重命名,usrA实际上比usrB更具特权,如本例所示: mkfifo foo ls -l foo touch bar mv bar foo ls -l foo 或者这个更简单的例子: mkfifo foo ls -l foo mv foo bar touch foo
prw-rw-rw- usrA usrA
但我一段时间后,它变成了一个常规文件
-rw-rw-rw- usrB usrB
你知道怎么会这样吗?所有权也发生了变化。
有趣的是,通过重命名,usrA实际上比usrB更具特权,如本例所示:
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中包含目录上设置的权限控制,而不是由重命名的源或目标上设置的权限控制。似乎有一个进程正在改变这一点。不用说,我们需要更多的信息来回答如果你在某个代码库中工作,我最好的猜测是你的程序在某个地方错误地将命名管道作为常规文件重新打开。明白..但我想知道我将如何做-我如何将FIFO更改为常规文件…然后我可以追溯它是如何发生的