在 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
文件。
进行上述更改,然后保存并重新启动以验证它是否按预期工作。