无需密码运行Sudo命令


在基于Linux/Unix的系统中,sudo命令允许受信任的用户以扩展权限执行命令,无论是超级用户(root)还是安全策略中定义的其他用户。

安全策略也决定了分配给用户的权限。它可能要求用户使用密码或其他身份验证机制进行身份验证。如果需要密码,系统将提示用户输入其帐户密码,并设置超时时间。否则,将根据安全策略执行指定的命令,无需任何提示。

在某些情况下,需要自动化工作流程并避免像上面讨论的sudo使用交互式提示。这就是无密码sudo选项的用武之地,它可以配置为在没有任何提示的情况下执行sudo命令。

在本教程中,我们将解释如何配置sudo以避免提示用户输入密码。

sudo配置以执行任何命令

在您的系统上打开一个终端窗口,或通过SSH远程连接到它。

在对sudoers配置文件进行任何更改之前,最好先备份一份。您可以使用cp命令将sudoers文件的备份复制到您的主目录或任何其他安全位置。

$ sudo cp /etc/sudoers ~/sudoers.bak

现在使用推荐的visudo工具打开sudoers文件进行编辑(不要直接使用vi/vim/nano编辑`/etc/sudoers`,因为visudo包含基本的语法检查,以在保存之前验证sudoers文件的语法,避免任何意外更改或与语法相关的错误)。

$ sudo visudo

添加/修改用户的行以包含NOPASSWD关键字(其中username应该是系统上正在为其配置sudo的用户的实际用户名)。

username ALL=(ALL) NOPASSWD:ALL

这是一张添加abhisheknair用户行后的配置文件截图。

保存文件并退出到终端/SSH会话提示符。现在,如果在命令前加上sudo,您应该能够以超级用户(root)身份运行任何命令,并且它将在不提示您输入帐户密码的情况下执行。

sudo配置以执行特定命令

如果您只想允许用户执行一个或多个给定的命令,而不提示输入密码,而不是允许执行任何命令,请在您的sudoers文件中使用如下所示的修改后的语法:

username ALL=(ALL) NOPASSWD: /usr/sbin/fdisk -l, /usr/bin/apt update, /usr/bin/apt upgrade

使用/etc/sudoers.d/目录进行sudo配置

/etc/sudoers文件受Linux发行版的包管理器控制。如果系统的包管理器更新此文件,您的更改可能会被修改或丢失。

为了避免这种情况,现代Linux系统允许将您本地对sudo配置的更改添加到/etc/sudoers.d/目录中,该目录不会被系统或软件包的升级所触及。

要使此方法有效,您的/etc/sudoers文件必须包含以下指令,以包含/etc/sudoers.d/目录的内容(通常在sudoers文件的底部默认找到)。

正如我们所看到的,我们在/etc/sudoers文件中找到了@includedir指令。

@includedir /etc/sudoers.d

如果一切设置正确,我们可以添加以下包含所需sudo命令的文件:

$ sudo visudo -f /etc/sudoers.d/somefilename

这里,somefilename可以是任何名称。通常为了标识其用途,您可以使用用户名或用途等直观的名称命名它。

$ sudo cat /etc/sudoers.d/90-abhisheknair
abhisheknair ALL=(ALL) NOPASSWD:ALL
$

如果您想在几个步骤中实现这一点,而不执行上述所有步骤,您可以简单地定义USERNAME变量并执行命令来创建包含所需行的文件。类似这样:

$ USERNAME=abhisheknair
$ echo "$USERNAME ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers.d/90-$USERNAME

如果您想为当前用户执行此操作,则shell中已经定义了USER变量,您可以简单地运行以下命令来为当前用户添加NOPASSWD sudo配置:

$ echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers.d/90-$USER

这假设执行上述命令的用户具有在/etc/sudoers.d内创建或修改文件的所需sudo权限。

结论

在本教程中,我们解释了如何修改Linux系统中的sudo配置,以允许用户在不提示输入密码的情况下执行命令。这可以通过使用visudo命令更新sudo配置文件,即/etc/sudoers,或通过在/etc/sudoers.d目录中添加新的配置文件来完成。

更新于:2024年11月21日

浏览量:15

启动您的职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.