如何在Debian中将用户添加到Sudoers

时间:2020-03-05 15:27:06  来源:igfitidea点击:

sudo是一个命令行实用程序,它允许受信任的用户默认情况下以root用户身份以其他用户身份运行命令。

本教程显示了两种向用户授予sudo特权的方法。
第一个是将用户添加到sudoers文件中。

该文件包含一组规则,这些规则确定使用sudo特权授予哪些用户或者组,以及特权级别。
第二个选项是将用户添加到“ sudoers”文件中指定的sudo组中。
默认情况下,在Debian及其衍生版本上,“ sudo”组的成员被授予sudo访问权限。

将用户添加到sudo组

向用户授予sudo特权的最快,最简单的方法是将用户添加到“ sudo”组。
该组的成员可以以root用户身份通过'sudo'执行任何命令,并在使用'sudo'时提示使用密码进行身份验证。

我们假设我们要分配给该组的用户已经存在。

以root或者其他sudo用户身份运行以下命令以将该用户添加到sudo组中

usermod -aG sudo username

确保使用要授予访问权限的用户名更改“用户名”。

对于大多数用例,使用此方法授予sudo访问权限就足够了。

要确保已将用户添加到组中,请键入:

sudo whoami

系统将要求我们输入密码。
如果用户具有sudo访问权限,则该命令将显示“ root”。
否则,我们将收到一条错误消息,提示“用户不在sudoers文件中”。

将用户添加到sudoers文件

用户和组的sudo特权在“/etc/sudoers”文件中定义。
该文件允许我们授予对命令的自定义访问权限并设置自定义安全策略。

我们可以通过编辑sudoers文件或者在“ /etc/sudoers.d”目录中创建新的配置文件来配置用户访问权限。
该目录内的文件包含在sudoers文件中。

始终使用“ visudo”命令来编辑“/etc/sudoers”文件。
保存文件时,此命令检查文件是否存在语法错误。
如果有任何错误,则不会保存文件。
如果使用常规文本编辑器编辑文件,则语法错误可能会导致失去sudo访问权限。

'visudo'使用由'EDITOR'环境变量指定的编辑器,默认情况下将其设置为vim。

如果要使用nano编辑文件,请通过运行以下命令更改变量:

EDITOR=nano visudo

假设我们要允许用户运行sudo命令而无需输入密码。
为此,请打开“/etc/sudoers”文件:

visudo

向下滚动到文件末尾并添加以下行:

/etc/sudoers

username  ALL=(ALL) NOPASSWD:ALL

保存文件并退出编辑器。

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

另一个典型示例是允许用户通过'sudo'仅运行特定命令。

例如,要仅允许“ mkdir”和“ rmdir”命令,可以使用:

/etc/sudoers

username ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/rmdir

除了编辑sudoers文件之外,我们还可以通过在'/etc/sudoers.d'目录中使用授权规则创建一个新文件来实现相同目的。
添加与添加到sudoers文件中相同的规则:

echo "username  ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/username

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