sudo命令允许受信任的用户以其他用户(默认情况下为root用户)的身份运行程序。

通常,要向用户授予sudo访问权限,您需要将该用户添加到sudoersfile中定义的sudo组中。在Debian,Ubuntu及其衍生的发行版上,该组的成员sudo被授予sudo特权,而在基于RedHat的发行版(如CentOS和Fedora)上,sudo组的名称为wheel

在运行sudo命令之前,将提示该组的每个成员输入密码。这增加了一层额外的安全性,并且是向用户授予sudo特权的首选方法。

但是,在某些情况下,例如运行自动化脚本,您可能需要配置sudoers文件并允许某些用户在不要求输入密码的情况下运行sudo命令。

将用户添加到Sudoers文件

sudoers文件包含确定用户和组的sudo特权的信息。

您可以通过修改sudoers文件或将配置文件添加到/etc/sudoers.d目录来配置用户sudo访问。在此目录内创建的文件将包含在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,可以运行:

sudo EDITOR=nano visudo

向下滚动到文件末尾,并添加以下行,这将允许用户“ myfreax”以sudo运行任何命令而无需输入密码:

/etc/sudoers

myfreax  ALL=(ALL) NOPASSWD:ALL

不要忘记用您要授予访问权限的用户名更改“ myfreax”。

如果要允许用户仅运行特定命令而不输入密码,请在NOPASSWD关键字后指定命令。

例如,仅允许使用mkdirmv命令,则可以使用:

/etc/sudoers

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

完成后,保存文件并退出编辑器

使用 /etc/sudoers.d

您可以编辑/etc/sudoers.d目录中的授权规则,而无需编辑sudoers文件。这种方法使sudo特权的管理变得更加可维护。

打开文本编辑器并创建文件:

sudo nano /etc/sudoers.d/myfreax

您可以根据需要命名文件,但是通常最好使用用户名作为文件名。

/etc/sudoers/myfreax

与添加到sudoers文件中相同的规则:

myfreax ALL=(ALL) NOPASSWD:ALL

最后,保存文件并关闭编辑器。

结论

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

如有任何疑问,请随时发表评论。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持