网站搜索

如何在 Linux 中不输入密码运行 sudo 命令


如果您在通常单独使用的计算机(例如笔记本电脑)上运行 Linux,那么从长远来看,每次调用 sudo 时输入密码可能会变得非常无聊。因此,在本指南中,我们将描述如何将 sudo 命令配置为无需输入密码即可运行。

这个设置是在/etc/sudoers文件中完成的,该文件驱动sudoers使用sudo命令的默认安全策略插件;在用户权限规范部分下。

重要:在sudeors文件中,默认打开的authenticate参数用于身份验证目的。如果设置了,用户在使用 sudo 运行命令之前必须通过密码(或其他身份验证方式)验证自己的身份。

但是,可以使用 NOPASSWD(当用户调用 sudo 命令时不需要密码)标签覆盖此默认值。

配置用户权限的语法如下:

user_list host_list=effective_user_list tag_list command_list

在哪里 :

  1. user_list – 已设置的用户或用户别名的列表。
  2. host_list – 用户可以在其上运行 sudo 的主机或主机别名的列表。
  3. effective_user_list – 他们必须作为或作为别名运行的用户列表。
  4. tag_list – 标签列表,例如 NOPASSWD。
  5. command_list – 用户使用 sudo 运行的命令列表或命令别名。

要允许用户(下例中的 aaronkilik)无需密码即可使用 sudo 运行所有命令,请打开 sudoers 文件:

sudo visudo

并添加以下行:

aaronkilik ALL=(ALL) NOPASSWD: ALL

对于组的情况,请在组名称前使用 % 字符,如下所示;这意味着 sys 组的所有成员都将使用 sudo 运行所有命令,无需密码。

%sys ALL=(ALL) NOPASSWD: ALL

要允许用户在没有密码的情况下使用 sudo 运行给定命令 (/bin/kill),请添加以下行:

aaronkilik ALL=(ALL) NOPASSWD: /bin/kill

下面的行将使 sys 组的成员能够使用 sudo 运行命令:/bin/kill/bin/rm 没有密码:

%sys ALL=(ALL) NOPASSWD: /bin/kill, /bin/rm

有关更多 sudo 配置和其他使用选项,请阅读我们描述更多示例的文章:

  • 在 Linux 中设置“sudo”的 10 个有用的 Sudoers 配置
  • 当你输入错误的密码时让 Sudo 侮辱你
  • 如何在 Linux 中保持“sudo”密码超时会话更长的时间

在本文中,我们描述了如何将 sudo 命令配置为无需输入密码即可运行。不要忘记在评论中向我们提供您对本指南或其他对 Linux 系统管理员有用的 sudeors 配置的想法。