具有所有权限的 mkfifo 仍然错误,其他用户的权限被拒绝

具有所有权限的 mkfifo 仍然错误,其他用户的权限被拒绝

乌本布 20.04

fifo 管道是通过用户的 bash 脚本创建的A[[ ! -p $fifopath ]] && mkfifo $fifopath -m0777

这将创建:prwxrwxrwx 1 A A 0 May 25 00:40 /tmp/somefifo

然后,如果用户B尝试写入 fifo,权限将被拒绝。如果我将 fifo 的组更改为用户B的组,权限仍然会被拒绝。只有当我将所有者更改为B或 时root,才B可以写入fifo。

从18.04更新后出现的问题

有什么想法如何解决这个问题吗?

答案1

这个补丁(也许是在 Ubuntu 19.10 中引入的?):

禁止在全局可写粘性目录中打开不属于用户所有的 FIFO 或常规文件,除非所有者与目录的所有者相同或文件在没有 O_CREAT 标志的情况下打开。

我采取了这些步骤来禁用它详细信息在这里

/etc/sysctl.d/protect-links.conf使用内容创建:

fs.protected_fifos = 0

然后重新启动procps:

sudo systemctl restart procps.service

相关内容