在 Linux 中运行 sudo 命令不需要密码
1、此设置在 /etc/sudoers 文件中完成,这是使用 sudo 命令的默认安全策略;在用户权限指定部分。
重要:在 sudeors 文件中,默认打开的 authenticate 参数用于验证目的。如果设置了它,用户必须通过密码(或其他身份验证方法)进行身份验证,然后才能使用 sudo 运行命令。更多命令请查看《Linux就该这么学》。
但是,可以使用 NOPASSWD (当用户调用 sudo 命令时不需要密码)标记来覆盖此默认值。
2、配置用户权限的语法如下:
user_list host_list=effective_user_list tag_list command_list
其中:
user_list - 用户列表或已经设置的用户别名。
host_list - 主机列表或用户可以在其上运行 sudo 的主机别名。
effective_user_list - 以该用户或别名运行的用户列表
tag_list - 标签列表,如 NOPASSWD 。
command_list - 用户使用 sudo 运行的命令或命令别名列表。
要允许用户(下面的示例中的 aaronkilik )使用 sudo 不输入密码即可运行所有命令,请打开 sudoers 文件:
$ sudo visudo
3、添加下面的行:
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
