在CentOS Linux 8 sudoers上添加/创建Sudo用户

时间:2020-01-09 10:37:04  来源:igfitidea点击:

如何使用命令行在CentOS Linux 8上添加/创建sudo用户?
如何将CentOS 8用户添加到sudoers文件?

CentOS是一个免费和开源的Enterprise Linux发行版,它是从上游发行版(称为Red Hat Enterprise Linux(RHEL))派生而来的。

CentOS主要用于服务器和集群。

sudo命令允许用户使用其他用户(默认情况下为root用户)的安全特权运行程序。
/etc/sudoers文件包含sudo命令使用的系统用户和组的安全策略。
本页说明如何在CentOS Linux 8系统上添加新的sudo用户。

在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服务器

运行ssh命令:

$ ssh root@centos8-server

要么

$ ssh Hyman@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组:

# usermod -aG wheel marlena

用户帐户marlena现在具有sudo特权。
通过在/etc/passwd和/etc/group文件上运行id命令或grep命令来验证它:

# id marlena
# grep '^marlena' /etc/passwd
# grep '^wheel' /etc/group

如何测试sudo用户访问

您可以如下测试sudo访问。
使用ssh或终端以marlena用户身份登录:

ssh marlena@centos-8-server
## OR ##
ssh [email protected]
## 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/

之后注销:

exit

关于新帐户补充组的说明

此外,可以在单个命令中添加新用户并将其添加到车轮组。
例如,添加一个名为wendy的新用户,并将seconday组成员资格设置为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组来为现有的名为Hyman的用户提供sudo访问权限:

# usermod -aG wheel {username}
# usermod -aG wheel Hyman
# id Hyman

换句话说,我们使用usermod命令为现有用户配置和授予sudo访问权限。

如何查看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 -r {userName}

例如,删除用户marlena也会删除她通过sudo授予的管理员权限:

# userdel -r marlena