超级用户拥有Linux系统中的所有权限。
root用户是Linux系统中功能最强大的用户,可以在系统中执行任何操作。
如果有任何用户想要执行某些操作,请不要向任何人提供root用户访问权限,因为如果他/她做错了任何事情,则没有任何纠正方法。
要解决此问题,解决方案是什么?
我们可以向相应的用户授予sudo权限来克服这种情况。
sudo命令提供了一种机制,可为受信任的用户提供对系统的管理访问权,而无需共享root用户的密码。
他们可以执行大多数管理操作,但不能执行所有操作,例如root。
什么是sudo?
sudo是一个程序,普通用户可以使用该程序以超级用户或另一个用户的身份执行命令,由安全策略指定。
sudo用户访问由/etc/sudoers文件控制。
sudo用户的优势是什么?
Linux系统将日志保存到/var/log/secure和/var/log/auth.log文件中,您可以在其中验证sudo用户执行了哪些操作。
每次,它将提示输入密码以执行当前操作。因此,您将有时间来验证要执行的操作。如果您认为这是不正确的操作,则可以安全地退出自身而无需执行当前操作。
我们将指导您如何在CentOS系统中执行此操作,可以通过三种方式来完成。
Debian系统配置sudo访问权限 请点这里
CentOS系统下需要将用户添加到wheel组中。
/etc/group手动将用户添加到文件中。
/etc/sudoers使用 visudo 将用户添加到文件中。
方法1:如何在CentOS中使用Wheel Group向用户授予超级用户访问权限?
Wheel是基于RHEL的系统中的一个特殊组,它提供其他特权,这些特权使用户能够以超级用户身份执行受限命令。
请注意,wheel应在/etc/sudoers文件中启用该组以获得此访问权限。
# grep -i wheel /etc/sudoers
## 允许 wheel 组中的人运行所有命令
%wheel ALL=(ALL) ALL
# %wheel ALL=(ALL) NOPASSWD: ALL
我假设我们已经创建了一个用户帐户来执行此操作。就我而言,我将使用bash5用户帐户。
运行以下命令以将用户添加到 wheel 组。
# usermod -aG wheel bash5
我们可以通过运行以下命令来对它进行确认。
# getent group wheel
wheel:x:10:bash5
我将检查bash5用户是否可以访问root用户拥有的文件。
$ tail -5 /var/log/secure
tail: cannot open _/var/log/secure_ for reading: Permission denied
当我尝试以/var/log/secure普通用户身份访问文件时出现错误。我将使用sudo访问相同的文件,让我们看一下结果。
$ sudo tail -5 /var/log/secure
[sudo] password for bash5:
Mar 17 07:01:56 CentOS7 sudo: bash5 : TTY=pts/0 ; PWD=/home/bash5 ; USER=root ; COMMAND=/bin/tail -5 /var/log/secure
Mar 17 07:01:56 CentOS7 sudo: pam_unix(sudo:session): session opened for user root by bash5(uid=0)
Mar 17 07:01:56 CentOS7 sudo: pam_unix(sudo:session): session closed for user root
Mar 17 07:05:10 CentOS7 sudo: bash5 : TTY=pts/0 ; PWD=/home/daygeek ; USER=root ; COMMAND=/bin/tail -5 /var/log/secure
Mar 17 07:05:10 CentOS7 sudo: pam_unix(sudo:session): session opened for user root by bash5(uid=0)
方法2:如何使用 /etc/group 文件向 CentOS 中的普通用户授予超级用户访问权限?
我们可以通过编辑/etc/group文件将用户手动添加到wheel组中。
只需打开文件,然后将相应的用户添加到适当的组即可实现此目的。
$ grep -i wheel /etc/group
wheel:x:10:bash5,user1
在此示例中,我将使用user1用户帐户。
我将user1通过重新启动Apache系统中的服务来检查用户是否具有sudo访问权限。让我们来看看结果。
$ sudo systemctl restart httpd
[sudo] password for user1:
$ sudo grep -i user1 /var/log/secure
[sudo] password for user1:
Mar 17 07:09:47 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/systemctl restart httpd
Mar 17 07:10:40 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/systemctl restart httpd
Mar 17 07:12:35 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/grep -i httpd /var/log/secure
方法3:如何在 CentOS 中使用 /etc/sudoers 文件向用户授予超级用户访问权限?
sudo用户访问由/etc/sudoers文件控制。因此,只需将用户添加到wheel组下的sudoers文件中即可。
只需使用visudo命令将所需的用户添加到 /etc/suoders 文件中即可。
# grep -i user2 /etc/sudoers
user2 ALL=(ALL) ALL
在此示例中,我将使用user2用户帐户。
我将user2通过重新启动系统中的MariaDB服务来检查用户是否具有sudo访问权限。让我们来看看结果。
$ sudo systemctl restart mariadb
[sudo] password for user2:
$ sudo grep -i mariadb /var/log/secure
[sudo] password for user2:
Mar 17 07:23:10 CentOS7 sudo: user2 : TTY=pts/0 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/systemctl restart mariadb
Mar 17 07:26:52 CentOS7 sudo: user2 : TTY=pts/0 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/grep -i mariadb /var/log/secure