如何在CentOS添加用户到sudoers

linux

sudo命令旨在允许用户以其它用户身份运行命令,默认情况下为root用户。使用sudo而不是以root用户身份登录会更安全,因为您可以为单个用户授予有限的管理权限,而无需让他们知道root用户密码。

本教程展示两种向用户授予sudo权限的方法。包括使用useradd命令创建用户,usermod命令添加用户到sudo组。使用visudo添加用户到/etc/sudoers文件,使用vim编辑器修改sudoer文件,无密码运行sudo命令,仅允许运行指定的命令。

添加用户到sudo组

向用户授予sudo权限的最快捷方法是将用户添加到sudo组。该组的成员可以通过sudo以root用户执行任何命令,并在使用sudo时提示使用密码进行身份验证。例如我们要将用户myfreax添加sudo组。首先使用useradd命令添加用户myfreax。

sudo useradd myfreax

该命令不会有任何输出,接下来我们将修改用户myfreax的密码,运行以下passwd命令:

sudo passwd myfreax

passwd命令将提示输入当前用户的密码,输出的当前用户密码正确后。将继续提示输入用户myfreax的密码,输出将如下所示:

[sudo] password for 当前用户: 

New password:

Retype new password:

passwd: password updated successfully

为了不改变用户的主要组,我们将使用-aG选项调用usermod命令将用户添加到wheel组中:

sudo usermod -aG wheel myfreax

在大多数情况下,使用此方法授予sudo权限就已足够。要确认是否已将用户myfreax添加到wheel组,请键入以下命令,id命令将打印用户myfreax的所有组,并使用grep命令过滤标准输出:

sudo id myfreax | grep wheel

你将会看到以下输出:

uid=1001(myfreax) gid=1001(myfreax) groups=1001(myfreax),27(wheel)

sudo字符将会被高亮。你也可以直接切换到新创建的用户使用su命令。首先从当前用户切换到用户myfreax,你将执行以下命令:

sudo su - myfreax

现在我们已经切换用户myfreax,我们可以尝试在用户myfreax使用sudo执行whoami命令:

sudo whoami

系统会要求您输入用户myfreax的密码:

[sudo] password for myfreax: 

如果用户具有sudo的权限,该命令将打印root。否则,您将收到一条错误消息,提示用户不在sudoers文件中user is not in the sudoers file

添加用户到/etc/sudoers

/etc/sudoers文件中定义了用户和组的sudo权限的策略。此文件使您可以授予对命令的自定义访问权限并设置自定义安全策略。

您可以通过编辑/etc/sudoers文件或在/etc/sudoers.d目录中创建新的配置文件来配置用户sudo访问权限。/etc/sudoers.d目录将使用includedir /etc/sudoers.d指令包含到在sudoers文件中。includedir指令默认是没有启用的,如需要启用,去掉注释即可。

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

visudo使用EDITOR环境变量指定的编辑器,默认情况下visudo使用vim编辑器。如果要使用nano编辑文件,请运行以下命令更改EDITOR环境变量:

EDITOR=nano sudo visudo

无密码运行sudo

在本教程中,我们将使用vim编辑器,假设您要允许用户运行sudo命令而无需输入密码。请运行以下visudo命令打开文件/etc/sudoers

sudo visudo

以下是符合/etc/sudoers文件定义的规则,它将允许用户在运行sudo命令时,无需输入密码即可运行。这在编写脚本时特别有用。如你需要,可将以下行添加到/etc/sudoers文件的末尾:

myfreax  ALL=(ALL) NOPASSWD:ALL

/etc/sudoers

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

仅允许运行指定的命令

另一个典型示例是仅允许用户使用sudo运行指定的命令。例如,要仅用户使用sudo运行mkdir命令创建目录和rmdir命令删除目录。可以在/etc/sudoers文件中定义以下规则:

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

/etc/sudoers

除了编辑sudoers文件外,还可以在/etc/sudoers.d目录中使用授权规则创建一个新文件来实现相同目的。添加到该目录下文件内容的规则与添加到/etc/sudoers文件中的规则相同。

以下命令将使用echo命令和tee命令以及管道将行myfreax  ALL=(ALL) NOPASSWD:ALL添加到/etc/sudoers.d/myfreax中。

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

最后记得开启includedir /etc/sudoers.d指令包含/etc/sudoers.d目录下的文件到在/etc/sudoers文件中。

sudo vim /etc/sudoers

找到行includedir /etc/sudoers.d取消注释。如果不存在,可以收到添加该行到/etc/sudoers文件。这种方法使得对sudo权限管理更加可维护。文件名并不重要,但通常的做法是根据用户名命名文件。

结论

要向CentOS中的用户授予sudo访问权限,只需将该用户添加到sudo组即可。如果您有任何疑问,请随时发表评论。

以上是 如何在CentOS添加用户到sudoers 的全部内容, 来源链接: utcz.com/z/507379.html

回到顶部