在Unix中,root用户是否可以覆盖设置为只读权限(即使是对root用户)的目录权限?

4
我已经创建了一个目录,并使用chmod设置了只读权限。具体命令如下:

chmod -R 400 some_dir/

但是当我尝试使用touch在其中创建任何文件时,我期望会看到类似以下的错误信息:

touch some_dir/hello.txt

"ouch: cannot touch `some_dir/hello.txt': Permission denied"
但是它却愉快地在其中创建了文件“hello.txt”,然而如果我检查目录权限,则仍然显示为只读权限。请解释一下我错过了什么,因为如果除root外的任何其他用户尝试在该目录中创建文件,应该会显示错误消息吧?
PS:我正在以root用户身份运行。

这个问题在 Stack Overflow 上不属于主题范围,但是是的,作为 root 用户可以覆盖一些权限。例如,你可以读取另一个用户的文件,该文件具有 rw------- 或者 -------- 权限。 - Thomas Padron-McCarthy
1个回答

4
短答案是 - 是的,Root用户可以在标记为只读的目录中创建文件。也许你会问 - 为什么?但这就是root帐户的全部意义。它是一个特殊的用户,可以做其他人无法做到的事情。
如果您想防止文件被意外修改,可以使用“chattr +i”命令设置文件的“i”属性。这将使文件无法更改。但请注意,它只能防止意外修改。Root用户仍然可以先取消设置该属性,然后修改文件。

1
所以为什么 root 用户没有执行权限时就无法执行文件呢?这很不一致。 - Eytan Naim
记住Unix已经有50年历史,是由一些聪明的孩子发明的;一些最古老的设计决策与较新的部分相比,显得不那么合理。 - SilverbackNet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接