root 如何在权限设置为 440 的情况下写入 sudoers 文件?

root 如何在权限设置为 440 的情况下写入 sudoers 文件?

所以当我查看 /etc/sudoers 文件的权限时,它是这样的

-r--r----- 1 root root 705 Nov  2 19:57 /etc/sudoers

现在,这不是意味着它不可写吗?那么 root 用户如何写入呢?

答案1

root 用户始终拥有对任何文件的完全写入访问权限,无论其模式如何。

也许最好的例子是/etc/shadow,它是模式 000 但当然可以由 root 修改:

[root@centos7 ~]# ls -pl /etc/shadow
----------. 1 root root 1353 Oct 26 07:40 /etc/shadow

答案2

正如评论中所述,最初的答案有点不清楚。

文件的所有者始终可以更改他所拥有的任何文件的权限(而 root 可以对所有现有文件执行此操作)。

如果您是普通用户,这取决于您尝试修改只读文件的方式:

  • 使用 vi 打开文件并更改它 -> 您可以使用“:w!”写入更改
  • 尝试 #echo "test" >> 只读文件,权限被拒绝。

如果您是 root 用户,您可以覆盖和更改您想要的任何文件,但程序 vi 会考虑只读权限并要求确认。

文件 /etc/sudoers 应始终通过“visudo”命令进行更改,该命令会在临时文件中打开实际文件的内容,并在保存更改之前进行一些检查。作为 root 用户,尽管具有只读权限,仍可以写入更改。

答案3

尝试使用 visudo 而不是 vi

sudo visudo

相关内容