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

sudo命令允许受信任的用户以其他用户。默认情况以root用户运行程序。通常,要向用户授予sudo权限,您需要将该用户添加到/etc/sudoers文件定义的sudo组中

3 min read
By myfreax
如何不需要密码运行sudo命令

sudo命令允许受信任的用户以其他用户。默认情况以root用户运行程序。通常,要向用户授予sudo权限,您需要将该用户添加到/etc/sudoers文件定义的sudo组中。这是向用户授予sudo权限的首选方法。

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

在运行sudo命令之前,将提示组的每个成员输入密码。这增加了一层额外的安全性,但是,在某些情况下,例如运行自动化脚本,您可能需要配置sudoers文件并允许某些用户在不需要输入密码的情况下运行sudo命令。

在本教程中,我们将说明如何不需要密码运行sudo命令。包括添加用户到/etc/sudoers文件。使用visudo命令添加sudo访问权限规则。在不输入密码时,仅允许用户运行指定命令或者所有命令。在/etc/sudoers.d添加文件,更sudo访问管理更可维护。

无密码运行sudo命令

/etc/sudoers文件包含确定用户和组sudo权限的信息。您可以修改/etc/sudoers文件或添加配置文件添加到/etc/sudoers.d目录来配置用户的sudo访问权限。

在此目录内创建的文件可通过includedir /etc/sudoers.d规则包含在sudoers文件中。includedir指令默认是注释的,你可能需要手动取消注释。

在对文件进行任何更改之前,最好备份当前文件,这是一个非常的好习惯,我们使用以下cp命令备份/etc/sudoers文件:

sudo cp /etc/sudoers{,.backup_$(date +%Y%m%d)}

date命令将追加当前日期到备份文件名。接下来,使用visudo命令打开文件/etc/sudoers

sudo visudo

更改sudoers文件时,请始终使用visudo。此命令在编辑后检查文件,如果存在语法错误,它将不保存更改。在大多数系统上,visudo命令使用vim编辑器打开文件/etc/sudoers

如果您没有使用vim的经验,则可以使用其它文本编辑器。例如,要将编辑器更改为GNU nano编辑器。请先设置EDITOR环境变量,然后运行visudo命令:

EDITOR=nano sudo visudo

向下滚动到文件末尾,复制粘帖以下行到文件/etc/sudoers,这将允许用户myfreax无需输入密码就可以运行任何sudo命令:

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

完成后,保存文件并退出编辑器。不要忘记将用户名myfreax更改为你的用户名。

仅允许使用sudo运行指定命令

如果要允许用户无需输入密码并仅运行指定的命令,请在NOPASSWD关键字后指定命令。例如,仅允许用户运行mkdirmv命令。则可将以下行添加/etc/sudoers文件中:

myfreax ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/mv
/etc/sudoers

结论

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