5

如何不需要密码运行sudo命令

 1 year ago
source link: https://www.myfreax.com/how-to-run-sudo-command-without-password/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如何不需要密码运行sudo命令

自动化脚本需要配置sudoers文件并允许某些用户在不需要输入密码的情况下运行sudo命令

Updated At 27 Oct 2022 3 min read
By myfreax
如何不需要密码运行sudo命令

如何不需要密码运行sudo命令

sudo命令允许受信任的用户以其他用户运行命令与程序。默认是root用户。

通常要向用户授予sudo权限,您应该将用户添加到/etc/sudoers文件定义的sudo组中。这是向用户授予sudo权限的首选方法。

在Debian,Ubuntu及其衍生的发行版,sudo组的成员被授予sudo的访问权限,而在基于RedHat的发行版,如CentOS和Fedora,wheel组的成员具有sudo的访问权限。

在运行sudo命令之前,将提示组的成员输入密码。这增加了一层额外的安全性,但是,在某些情况下,例如运行自动化脚本。

您可能需要配置sudoers文件并允许某些用户在不需要输入密码的情况下运行sudo命令。在本教程中,我们将说明如何不输入密码运行sudo命令。

无密码运行sudo

/etc/sudoers文件中定义了用户和组的sudo权限的策略。此文件使您可以授予命令的自定义访问权限并设置自定义安全策略。

myfreax  ALL=(ALL) NOPASSWD:ALL规则将允许用户在运行sudo命令时,不需要输入密码即可运行。这在编写脚本时特别有用。

假设您要允许用户不输入密码运行sudo命令。请运行命令sudo visudo打开文件/etc/sudoers

追加此规则到/etc/sudoers文件的末尾。保存文件,然后退出编辑器。不要忘记用将myfreax改为你使用的用户名。

sudo visudo
myfreax  ALL=(ALL) NOPASSWD:ALL
/etc/sudoers

除了编辑sudoers文件外,还可以在/etc/sudoers.d目录创建文件并添加授权规则来实现相同目的。

如果在/etc/sudoers.d目录中创建新的配置文件,必须在/etc/sudoers文件使用includedir /etc/sudoers.d指令包含/etc/sudoers.d目录文件。

includedir指令默认是没有启用的,如需要启用,去掉注释即可。

这种方法使得对sudo权限管理更加可维护。文件名并不重要,但通常的做法是根据用户名命名文件。

仅允许运行指定的命令

另一个典型示例是仅允许用户使用sudo运行指定的命令。例如,要仅允许用户使用sudo运行mkdir命令创建目录rmdir命令删除目录

myfreax ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/rmdir规则将允许用户在不输入密码,仅运行指定rmdir和mkdir命令。

sudo visudo
myfreax ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/rmdir
/etc/sudoers

结论

教程中已经向您展示了如何编辑/etc/sudoers以使您sudo无需输入密码即可运行命令。当您具有非root用户需要执行管理任务的脚本时,此功能很有用。如有任何疑问,请随时发表评论。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK