像Ubuntu、Debian、Mint、Kali、CentOS、RHEL、SUSE等Linux发行版提供了 苏多 命令以执行和运行具有root权限的命令,而不以root用户身份登录。sudo命令在日常使用中非常流行,一般由高级用户提供运行sudo命令的能力。sudo命令配置位于 /etc/苏多尔 文件。默认情况下,sudo命令要求提供当前用户密码以提供root权限作为安全措施。但对于大量使用,提供或键入密码并不是一种实用的方法。sudo命令提供了在没有任何密码的情况下运行的能力,该密码也称为 没有错 配置。
/etc/sudoers配置文件
sudoers配置文件用于设置sudo命令的配置。为了使sudo命令无密码,我们应该编辑这个文件。sudoers配置文件可以用命令行或GUI编辑器打开,但是防止错误和锁定的最安全的方法是使用下面的visudo命令。
$ sudo visudo
![图片[1]-如何使用NOPASSWD在没有密码的情况下运行“sudo”命令?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/11/linuxtect_image-3.png)
默认配置行如下所示。简单地说,这一行提供了为根用户运行所有命令的能力。
root ALL=(ALL:ALL) ALL
在Linux系统中,用户通常设置sudo组来运行sudo命令。这个sudo组在sudoers文件中使用以下行进行配置。简单地说,sudo组成员可以通过提供密码来运行来自所有系统的所有命令。
%sudo ALL=(ALL:ALL) ALL
无密码sudo命令的NOPASSWD配置
无密码sudo命令或运行sudo命令而不键入密码的神奇之处在于 没有错 配置。在下面的一行中,我们消除了sudo命令的交互式密码身份验证,sudo组的所有用户都可以在没有密码的情况下运行所有命令。
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
禁用特定用户的密码
我们还可以禁用特定用户的sudo密码。我们只需提供用户名和更改组名,如下所示。在下面的示例中,我们将设置用户 伊斯梅尔 运行sudo命令而不询问密码。
ismail ALL=(ALL:ALL) NOPASSWD: ALL
禁用组的密码
即使我们已经为无密码sudo命令设置了sudo组,让我们通过设置 系统 无密码sudo命令的组。
%sys ALL=(ALL:ALL) NOPASSWD: ALL
禁用特定命令的密码
NOPASSWD配置的另一个用例是禁用特定命令的sudo密码。默认情况下,NOPASSWD将禁用sudo的所有命令的密码。但是我们可以设置一个特定的命令来运行sudo而不需要密码。sudo的所有其他命令也需要密码。在下面的示例中,用户 伊斯梅尔 能跑吗 /箱子/密码 没有密码的sudo命令。
ismail ALL=(ALL:ALL) NOPASSWD: /bin/passwd
也可以为无密码sudo用法指定多个命令,如下所示。
ismail ALL=(ALL:ALL) NOPASSWD: /bin/passwd, /bin/rm, /bin/mkdir
相关文章: 在Linux中如何更改目录?