有人可以解释一下 sudoers 文件中的 `<user> ALL=(ALL) NOPASSWD:ALL` 的作用吗?

Nab*_*kar 5 linux sudo sudoers

我知道上面的行允许<user>运行 sudo 命令而无需输入密码。但语法的实际含义是什么?如果您可以链接到一篇文章那就太好了。谢谢

Bil*_*hor 5

手册sudoers页对此进行了非常详细的描述。

格式为;

user_spec host_spec=(runas_spec) NOPASSWD:cmd_spec 
Run Code Online (Sandbox Code Playgroud)
  • user_spec 标识哪些用户可以使用该规则。
  • host_spec 标识规则适用于哪些主机。这是可选的,默认为“全部”。
  • runas_spec 标识可以以哪些用户身份运行命令。
  • NOPASSWD:或PASSWD:指定是否需要密码。这是可选的,默认为 PASSWD,除非在 sudoers 配置中更改了默认值。
  • cmd_spec 标识可以运行规则的命令。

对各种规格使用别名是很常见的。每个规范都有一个预定义的别名 ALL,这是不言自明的。


Erj*_*ers 3

来自man sudoers

默认情况下,sudo 要求用户在运行命令之前对自己进行身份验证。可以通过 NOPASSWD 标签修改此行为

因此,用户或组无需身份验证即可运行 sudo。这使得它成为一个很大的安全风险,所以使用这个命令时要非常小心。

另请检查https://askubuntu.com/questions/334318/sudoers-file-enable-nopasswd-for-user-all-commands