如何自动化 sudo 密码

如何自动化 sudo 密码

如何在提示时自动输入 sudo 密码?我可以通过键入以下内容在脚本中执行此操作:echo PASSWORD | sudo -S Command,但如何在提示时始终执行此操作?

答案1

您可以修改 sudoers 文件(使用visudo)并使用“NOPASSWD”选项不提示输入密码。从,这里页面;例如man sudoers搜索 NOPASSWD -

NOPASSWD 和 PASSWD

默认情况下,sudo 要求用户在运行命令之前进行身份验证。此行为可以通过 NOPASSWD 标记进行修改。与 Runas_Spec 一样,NOPASSWD 标记会为 Cmnd_Spec_List 中紧随其后的命令设置默认值。相反,PASSWD 标记可用于逆转这种情况。例如:

ray     rushmore = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm

将允许用户 ray 以 root 身份在机器 rushmore 上运行 /bin/kill、/bin/ls 和 /usr/bin/lprm,而无需进行身份验证。如果我们只希望 ray 能够在没有密码的情况下运行 /bin/kill,则条目将是:

ray     rushmore = NOPASSWD: /bin/kill, PASSWD: /bin/ls, /usr/bin/lprm

但请注意,PASSWD 标记对 exempt_group 选项指定的组中的用户没有影响。

默认情况下,如果 NOPASSWD 标记应用于当前主机上用户的任何条目,则该用户将能够在没有密码的情况下运行“sudo -l”。此外,如果 NOPASSWD 标记存在于与当前主机相关的所有用户条目中,则用户只能在不使用密码的情况下运行“sudo -v”。此行为可以通过 verifypw 和 listpw 选项覆盖。

相关内容