在 sudoers 中 (ALL)=All 是指用户还是权限?用户权限管理

在 sudoers 中 (ALL)=All 是指用户还是权限?用户权限管理

考虑到犯这个错误是极其危险的,我认为它值得一个明确的答案。关于 sudoers 中 ALL 的使用还有很多其他答案,但它们并没有直接回答这个问题:

ALL 是否指组中的用户; ALL 是否指对 Cmnd_Alias[es] 的访问;或者它可以根据它在行中的位置来指代其中一个或两个吗?

例如:像这样的组REGULARUSER ALL=(ALL) NOPASSWD: SHUTDOWN意味着ALL组中的用户REGULARUSER有权访问Cmnd_Alias SHUTDOWN.

换句话说,语法是:Group \ Users \ Command Permission Specifications.这是正确的吗?

因此,这意味着我可以ALL在像 root 这样的实例中使用向组中的所有用户授予所有权限,因此用户组的 ALL=(ALL:ALL) ALLroot

关于使用的其他一些问题ALL

试图理解 sudoers 文件中“modernNeo ALL=(ALL:ALL) ALL”和“modernNeo ALL=(ALL) ALL”之间的区别

“ALL ALL=(ALL) NOPASSWD:ALL”已自动添加到我的 /etc/sudoers 文件中。这是安全漏洞吗?

答案1

联机帮助页

保留字全部是一个内置的别名这总是导致匹配成功。它可以用在任何可能使用 Cmnd_AliasUser_AliasRunas_Alias或 的地方Host_Alias

因此,根据上下文,它可以是所有命令、所有用户或组、所有用户或组或所有主机。

例如:像这样的组REGULARUSER ALL=(ALL) NOPASSWD: SHUTDOWN意味着ALL组中的用户REGULARUSER有权访问Cmnd_Alias SHUTDOWN.

是的,但“所有用户”并不是因为ALL规则中存在任何内容。第一个ALL是针对 的Host_Alias,第二个ALL是针对 的Runas_Alias。这是因为User_List并且Runas_List可以包括组

AUser_List由一个或多个用户名、用户 ID(以 ' #' 为前缀)、系统组名称和 ID(分别以 ' %' 和 ' %#' 为前缀)、网络组(以 ' +' 为前缀)、非 Unix 组名和ID(分别以“ %:”和“ %:#”为前缀)和User_Aliases.

和:

ARunas_List与 a 类似User_List,只是User_Aliases它可以包含Runas_Aliases

User_list包括一个组时,它意味着该组的所有成员,除非您通过否定排除特定成员。

换句话说,语法是:Group \ Users \ Command Permission Specifications

一点也不。看EBNF 语法描述的联机帮助页,但大致是:

<user_list> <host_list> = (<runas_list>) <tags> <commands>

或者,从联机帮助页:

用户规范的基本结构是“who where=(as_whom)what”。

相关内容