sudoers文件中的参数是什么

sudoers文件中的参数是什么

sudoers 文件具有以下行:

root ALL=(ALL) ALL

我读到第一个字段是用户。那么第一个ALL是所有终端,(ALL)意味着任何用户,最后一个ALL意味着任何命令。

  1. 当 sudoers 文件中没有这一行时会发生什么?那么 root 就不能做任何事情了吗?

  2. username ALL= /bin/passwd像这样,是否可以解释为“用户名”可以从所有终端运行 passwd

  3. 可以给出什么值来代替first ALL

答案1

  1. sudoers文件仅控制sudo可能的调用。允许root执行任何操作的行sudo通常并不有用,因为 root 永远不会需要 sudo为了任何东西。它更方便:这样您就可以编写可以由 root 或其他 sudoers 随意调用的脚本,并且可以调用sudo来提升权限。

  2. username ALL = /bin/passwd允许用户passwd在任何机器上运行命令(以及在任何终端上 - sudo 不关心这一点)。 Sudo 允许在文件中使用计算机名称sudoers,以便您可以在sudoers不修改的情况下将文件部署到网络中的所有计算机,并且仍然有一些仅适用于某些计算机的规则。

  3. 在第二个位置,您可以有一个主机列表(Host_Listsudoers手册中)。这是一个以逗号分隔的主机名列表。您可以使用别名(有关详细信息,请参阅手册)、IP 地址或指定子网的各种方式(有关详细信息,请参阅手册)来代替主机名。

sudoers手册读起来并不容易,但最后有一个很好的示例列表。我建议您先阅读该部分。

答案2

Nosudo实际上对 root 用户没有任何权力。如果 root 运行前缀为 的命令,则该行就会出现sudo。该规则允许 root 执行此操作。

sudo它实际上更像是一种保护,因此在脚本中可能包含前缀为.的命令的情况下,root 不会被阻止。

顺便说一句,您阅读的规则如下:

root ALL=(ALL) ALL

这意味着:让 root 以任何用户身份在任何主机上运行任何命令。因此,从某种意义上说,如果您要将其从一个系统移动到另一个系统,则该规则是可移植的,因为它没有提及将 root 限制到特定主机,或者通过 sudo 以任何方式限制 root。

相关内容