在 CentOS Linux 8 sudoers 上添加/创建 Sudo 用户
CentOS 是一款免费的开源企业 Linux 发行版,源自名为 Red Hat Enterprise Linux (RHEL) 的上游发行版。CentOS 主要用于服务器和集群。sudo 命令允许用户以其他用户(默认为 root 用户)的安全权限运行程序。/etc/sudoers 文件包含 sudo 命令使用的系统用户和组的安全策略。本页介绍如何在 CentOS Linux 8 系统上添加新的 sudo 用户。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | CentOS |
操作系统兼容性 | Alma • RHEL • Rocky • Stream |
预计阅读时间 | 5 分钟 |
在 CentOS 8 上添加或创建 sudo 用户的步骤
- 打开终端应用程序
- 对于远程 CentOS 服务器,使用 ssh 命令并使用 su 或 sudo 以 root 用户身份登录。
- 创建一个名为tom的新CentOS用户,运行:useradd tom
- 设置密码,执行:passwd tom
- 在 CentOS Linux 8 上让 tom 用户成为 sudo 用户,运行:usermod -aG wheel tom
- id tom通过运行命令来验证
让我们详细了解 CentOS 8/9 和 CentOS Stream 的所有命令和示例。
登录CentOS服务器
运行 ssh 命令:
$ ssh root@centos8-server
或者
$ ssh vivek@centos-8-server-ip
接下来,以 root 用户身份登录:
$ su -
或者
$ sudo -i
如何在 CentOS 上创建新的sudo 用户
首先从命令行创建一个新的 CentOS 用户帐户。例如,创建 marlena 用户帐户,运行:
# adduser marlena
通过键入以下 passwd 命令为 marlena 用户设置密码:
# passwd marlena
已创建一个新用户帐户。验证它:
# id marlena
在 CentOS 8 Linux 服务器中,wheel 组的所有成员都具有 sudo 访问权限。因此,您所要做的就是使用 usermod 命令将用户帐户附加到 wheel 组:用户帐户 marlena 现在具有 sudo 权限。通过在/etc/passwd和/etc/group文件上运行id 命令或grep 命令
# usermod -aG wheel marlena
来验证它:
# id marlena
# grep '^marlena' /etc/passwd
# grep '^wheel' /etc/group
如何测试 sudo 用户访问权限
您可以按如下方式测试 sudo 访问。使用 ssh 命令或终端以 marlena 用户身份登录:
之后注销(或使用键盘快捷键+
$ ssh marlena@centos-8-server
## OR ##
$ ssh marlena@10.83.200.54
## verify current user id ##
$ id
## Now, gain root shell ##
$ sudo -i
## Verify id again ##
# id
## Run command as root ##
$ sudo systemctl status sshd.service
$ sudo ls -l /root/
CTRLd$ exit
关于新账户补充群组的说明
此外,还可以通过单个命令添加新用户并将其添加到 wheel 组。例如,添加名为 wendy 的新用户,并将辅助组成员身份设置为 wheel,如下所示:
示例输出:
# adduser -G wheel {userName}
# adduser -G wheel wendy
# passwd wendy
# id wendy
uid=1001(wendy) gid=1001(wendy) groups=1001(wendy),10(wheel)
如何在 CentOS 上授予或添加现有用户帐户 sudo
假设您需要添加一个现有用户帐户并授予其管理权限。在本例中,我将通过将用户添加到 wheel 组来授予名为 vivek 的现有用户 sudo 访问权限:
换句话说,我们使用 usermod 命令为现有用户配置并授予 sudo 访问权限。
# usermod -aG wheel {username}
# usermod -aG wheel vivek
# id vivek
如何查看 sudo 管理员权限日志
使用 sudo 委派管理员权限是个好主意,因为它会在日志文件中跟踪用户帐户。最重要的是,这是一种很好的安全做法。例如,输入以下grep 命令/ egrep 命令/tail 命令:
以下是日志条目:
# tail -f /var/log/secure
# grep marelna /var/log/secure
# grep marlena /var/log/secure | grep -i command
Dec 3 17:42:05 centos-8 sudo[603]: marlena : TTY=pts/0 ; PWD=/home/marlena ; USER=root ; COMMAND=/bin/bash Dec 3 17:42:56 centos-8 sudo[691]: marlena : TTY=pts/0 ; PWD=/home/marlena ; USER=root ; COMMAND=/bin/bash Dec 3 17:43:10 centos-8 sudo[711]: marlena : TTY=pts/0 ; PWD=/home/marlena ; USER=root ; COMMAND=/bin/systemctl status sshd.service Dec 3 17:44:22 centos-8 sudo[720]: marlena : TTY=pts/0 ; PWD=/home/marlena ; USER=root ; COMMAND=/bin/bash Dec 3 17:45:52 centos-8 sudo[750]: marlena : TTY=pts/0 ; PWD=/home/marlena ; USER=root ; COMMAND=/bin/systemctl enable nginx.service Dec 3 17:49:57 centos-8 sudo[813]: marlena : TTY=pts/0 ; PWD=/home/marlena ; USER=root ; COMMAND=/bin/bash Dec 3 17:50:09 centos-8 sudo[840]: marlena : TTY=pts/0 ; PWD=/home/marlena ; USER=root ; COMMAND=/bin/ls /root/ Dec 3 17:50:13 centos-8 sudo[843]: marlena : TTY=pts/0 ; PWD=/home/marlena ; USER=root ; COMMAND=/bin/ls -l /root/ Dec 3 18:17:03 centos-8 sudo[884]: marlena : TTY=pts/0 ; PWD=/home/marlena ; USER=root ; COMMAND=/bin/date
同样,安全策略可能会记录使用 sudo 的成功和失败尝试。此外,如果配置了 I/O 插件,则正在运行的命令的输入和输出也可能记录在日志文件中。sudo 命令比 su 更好,它会保留其他用户运行的所有管理任务的详细日志。因此,sudo 是授予 CentOS 服务器上的管理员权限的正确选择。
关于在 CentOS 8 中删除用户帐户的说明
userdel 命令的语法如下:
# userdel -r {userName}
例如,删除用户 marlena 并通过 sudo 删除她授予的管理员权限:
# userdel -r marlena
结论
您学习了如何在 CentOS 8 中将新用户和现有用户帐户添加到 sudo,方法是将它们附加到 wheel 组,以便它们可以运行管理命令。 sudo 命令有更多选项。因此,请参阅此处的 sudo 帮助文档。另请通过键入以下帮助命令/man 命令查看手册页:
$ man sudo