在 20.04 中,root 用户无法写入其他人拥有的 /tmp 中的文件,但在 18.04 中可以

在 20.04 中,root 用户无法写入其他人拥有的 /tmp 中的文件,但在 18.04 中可以

在 Ubuntu 18.04 中,我可以以一个用户的身份创建一个文件/tmp,并以用户的身份写入该文件root(尽管在 上设置了粘滞位/tmp)。

在 Ubuntu 20.04 中,我Permission Denied以用户身份收到错误root

Ubuntu 18.04:

# As user "ubuntu":
touch /tmp/tmplock

# As user "root":
echo "foo" > /tmp/tmplock

cat /tmp/tmplock
# Outputs "foo"

ls -lah /tmp
drwxrwxrwt 32 root   root    20K Jun 16 18:36 .
-rw-rw-r--  1 ubuntu ubuntu    4 Jun 16 18:36 tmplock

Ubuntu 20.04:

# As user "ubuntu":
touch /tmp/tmplock

# As user "root":
echo "foo" > /tmp/tmplock
# Outputs: bash: /tmp/tmplock: Permission denied

ls -lah /tmp
drwxrwxrwt 12 root   root   4.0K Jun 16 18:15 .
-rw-rw-r--  1 ubuntu ubuntu    0 Jun 16 18:14 tmplock

我找不到任何信息来表明这是否与粘滞位、底层 Linux 内核更改或其他任何内容有关。

有人知道什么可以解释这种行为的改变吗?

答案1

要将行为改回 18.04 默认设置:

sudo sysctl fs.protected_regular=0  

请参阅接受的答案

https://unix.stackexchange.com/questions/503111/group-permissions-for-root-not-working-in-tmp

唉,有时候治疗比疾病更糟糕。

答案2

根用户应始终能够编辑任何文件。唯一正确的反应是禁用该sysctl fs.protected_regular设置,直到问题得到解决(即,这样根用户就可以编辑系统上的任何内容)。

其他答案有一个临时解决方案,在重启后不会失效。

如果您想fs.protected_regular=0在重新启动后使更改永久生效,请编辑该/usr/lib/sysctl.d/protect-links.conf文件。

进行上述更改,然后保存并重新启动以验证它是否按预期工作。

相关内容