【问题标题】:Does root overrides read only permission(even to root) set to directory in unix?root 是否会覆盖在 unix 中设置为目录的只读权限(甚至是 root)?
【发布时间】:2020-02-20 09:49:25
【问题描述】:

我已经创建了目录并使用 chmod 为 root 设置了只读权限。

chmod -R 400 some_dir/

但是当我尝试使用触摸在其中创建任何文件时,我期待类似的错误消息

触摸 some_dir/hello.txt

"touch: cannot touch `some_dir/hello.txt': Permission denied"

但它会在其中愉快地创建文件“hello.txt”,但是如果我检查它,目录权限仍然显示为 root 只读。请解释我在这里遗漏了什么,因为我期待如果任何其他用户(除了 root 用户)尝试在该目录中创建文件时会显示错误消息?

PS:我正在以 root 用户身份运行。

【问题讨论】:

  • 这个问题在 Stack Overflow 上是题外话,但是是的,作为 root 会覆盖一些权限。例如,您可以读取其他用户的文件,该文件具有 rw------- 甚至 --------- 权限。

标签: linux unix


【解决方案1】:

简短的回答是 - ,Root 用户可以在标记为只读的目录中创建文件。你可能会争辩——为什么?但这就是 root 帐户的全部意义所在。它是一个特殊的用户,它可以做别人做不到的事情。

如果您想防止文件被意外修改,您可以使用chattr +i 命令设置文件的i 属性。这将使文件不可更改。但是,请注意,它只会防止意外修改。 Root 用户仍然可以先取消设置属性,然后再修改文件。

【讨论】:

  • 那么为什么root不能在没有exec模式的情况下执行文件呢?这是不一致的..
  • 记住 Unix 已有 50 年历史,是由少数聪明的孩子发明的。与较新的部分相比,一些最古老的设计决策意义不大。
猜你喜欢
  • 1970-01-01
  • 2019-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
  • 1970-01-01
  • 2015-01-12
  • 2018-03-23
相关资源
最近更新 更多