这篇文章将为大家详细讲解有关怎么在Linux中配置sudo访问权限,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
sudo
是一个程序,普通用户可以使用它以超级用户或其他用户的身份执行命令,是由安全策略指定的。
sudo 用户的访问权限是由 /etc/sudoers
文件控制的。
在 Linux 系统中,如果你不熟悉一个命令,sudo
是运行它的一个安全方式。
Linux 系统在 /var/log/secure
和 /var/log/auth.log
文件中保留日志,并且你可以验证 sudo 用户实施了哪些行为操作。
每一次它都为当前的操作提示输入密码。所以,你将会有时间去验证这个操作是不是你想要执行的。如果你发觉它是不正确的行为,你可以安全地退出而且没有执行此操作。
基于 RHEL 的系统(如 Redhat (RHEL)、 CentOS 和 Oracle Enterprise Linux (OEL))和基于 Debian 的系统(如 Debian、Ubuntu 和 LinuxMint)在这点是不一样的。
我们将会教你如何在本文中提及的两种发行版中执行该操作。
这里有三种方法可以应用于两个发行版本。
增加用户到相应的组。基于 RHEL 的系统,我们需要添加用户到 wheel
组。基于 Debain 的系统,我们添加用户到 sudo
或 admin
组。
手动添加用户到 /etc/group
文件中。
用 visudo
命令添加用户到 /etc/sudoers
文件中。
在基于 RHEL 的系统中(如 Redhat (RHEL)、 CentOS 和 Oracle Enterprise Linux (OEL)),使用下面的三个方法就可以做到。
wheel 是基于 RHEL 的系统中的一个特殊组,它提供额外的权限,可以授权用户像超级用户一样执行受到限制的命令。
注意,应该在 /etc/sudoers
文件中激活 wheel
组来获得该访问权限。
# grep -i wheel /etc/sudoers ## Allows people in group wheel to run all commands%wheel ALL=(ALL) ALL# %wheel ALL=(ALL) NOPASSWD: ALL
假设我们已经创建了一个用户账号来执行这些操作。在此,我将会使用 daygeek
这个用户账号。
执行下面的命令,添加用户到 wheel
组。
# usermod -aG wheel daygeek
我们可以通过下面的命令来确定这一点。
# getent group wheelwheel:x:10:daygeek
我将要检测用户 daygeek
是否可以访问属于 root 用户的文件。
$ tail -5 /var/log/securetail: cannot open /var/log/secure for reading: Permission denied
当我试图以普通用户身份访问 /var/log/secure
文件时出现错误。 我将使用 sudo
访问同一个文件,让我们看看这个魔术。
$ sudo tail -5 /var/log/secure[sudo] password for daygeek:Mar 17 07:01:56 CentOS7 sudo: daygeek : TTY=pts/0 ; PWD=/home/daygeek ; USER=root ; COMMAND=/bin/tail -5 /var/log/secureMar 17 07:01:56 CentOS7 sudo: pam_unix(sudo:session): session opened for user root by daygeek(uid=0)Mar 17 07:01:56 CentOS7 sudo: pam_unix(sudo:session): session closed for user rootMar 17 07:05:10 CentOS7 sudo: daygeek : TTY=pts/0 ; PWD=/home/daygeek ; USER=root ; COMMAND=/bin/tail -5 /var/log/secureMar 17 07:05:10 CentOS7 sudo: pam_unix(sudo:session): session opened for user root by daygeek(uid=0)
我们可以通过编辑 /etc/group
文件来手动地添加用户到 wheel
组。
只需打开该文件,并在恰当的组后追加相应的用户就可完成这一点。
$ grep -i wheel /etc/groupwheel:x:10:daygeek,user1
在该例中,我将使用 user1
这个用户账号。
我将要通过在系统中重启 Apache httpd 服务来检查用户 user1
是不是拥有 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 httpdMar 17 07:10:40 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/systemctl restart httpdMar 17 07:12:35 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/grep -i httpd /var/log/secure
sudo 用户的访问权限是被 /etc/sudoers
文件控制的。因此,只需将用户添加到 sudoers
文件中 的 wheel
组下即可。
只需通过 visudo
命令将期望的用户追加到 /etc/sudoers
文件中。
# grep -i user2 /etc/sudoersuser2 ALL=(ALL) ALL
在该例中,我将使用 user2
这个用户账号。
我将要通过在系统中重启 MariaDB 服务来检查用户 user2
是不是拥有 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 mariadbMar 17 07:26:52 CentOS7 sudo: user2 : TTY=pts/0 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/grep -i mariadb /var/log/secure
在基于 Debian 的系统中(如 Debian、Ubuntu 和 LinuxMint),使用下面的三个方法就可以做到。
sudo
或 admin
是基于 Debian 的系统中的特殊组,它提供额外的权限,可以授权用户像超级用户一样执行受到限制的命令。
注意,应该在 /etc/sudoers
文件中激活 sudo
或 admin
组来获得该访问权限。
# grep -i 'sudo\|admin' /etc/sudoers # Members of the admin group may gain root privileges%admin ALL=(ALL) ALL # Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL
假设我们已经创建了一个用户账号来执行这些操作。在此,我将会使用 2gadmin
这个用户账号。
执行下面的命令,添加用户到 sudo
组。
# usermod -aG sudo 2gadmin
我们可以通过下面的命令来确定这一点。
# getent group sudosudo:x:27:2gadmin
我将要检测用户 2gadmin
是否可以访问属于 root 用户的文件。
$ less /var/log/auth.log/var/log/auth.log: Permission denied
当我试图以普通用户身份访问 /var/log/auth.log
文件时出现错误。 我将要使用 sudo
访问同一个文件,让我们看看这个魔术。
$ sudo tail -5 /var/log/auth.log[sudo] password for 2gadmin:Mar 17 20:39:47 Ubuntu18 sudo: 2gadmin : TTY=pts/0 ; PWD=/home/2gadmin ; USER=root ; COMMAND=/bin/bashMar 17 20:39:47 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by 2gadmin(uid=0)Mar 17 20:40:23 Ubuntu18 sudo: pam_unix(sudo:session): session closed for user rootMar 17 20:40:48 Ubuntu18 sudo: 2gadmin : TTY=pts/0 ; PWD=/home/2gadmin ; USER=root ; COMMAND=/usr/bin/tail -5 /var/log/auth.logMar 17 20:40:48 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by 2gadmin(uid=0)
或者,我们可以通过添加用户到 admin
组来执行相同的操作。
运行下面的命令,添加用户到 admin
组。
# usermod -aG admin user1
我们可以通过下面的命令来确定这一点。
# getent group adminadmin:x:1011:user1
让我们看看输出信息。
$ sudo tail -2 /var/log/auth.log[sudo] password for user1:Mar 17 20:53:36 Ubuntu18 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/usr/bin/tail -2 /var/log/auth.logMar 17 20:53:36 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by user1(uid=0)
我们可以通过编辑 /etc/group
文件来手动地添加用户到 sudo
组或 admin
组。
只需打开该文件,并在恰当的组后追加相应的用户就可完成这一点。
$ grep -i sudo /etc/groupsudo:x:27:2gadmin,user2
在该例中,我将使用 user2
这个用户账号。
我将要通过在系统中重启 Apache httpd 服务来检查用户 user2
是不是拥有 sudo
访问权限。让我们看看这个魔术。
$ sudo systemctl restart apache2[sudo] password for user2: $ sudo tail -f /var/log/auth.log[sudo] password for user2:Mar 17 21:01:04 Ubuntu18 systemd-logind[559]: New session 22 of user user2.Mar 17 21:01:04 Ubuntu18 systemd: pam_unix(systemd-user:session): session opened for user user2 by (uid=0)Mar 17 21:01:33 Ubuntu18 sudo: user2 : TTY=pts/0 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/systemctl restart apache2
sudo 用户的访问权限是被 /etc/sudoers
文件控制的。因此,只需将用户添加到 sudoers
文件中的 sudo
或 admin
组下即可。
只需通过 visudo
命令将期望的用户追加到 /etc/sudoers
文件中。
# grep -i user3 /etc/sudoersuser3 ALL=(ALL:ALL) ALL
在该例中,我将使用 user3
这个用户账号。
我将要通过在系统中重启 MariaDB 服务来检查用户 user3
是不是拥有 sudo
访问权限。让我们看看这个魔术。
$ sudo systemctl restart mariadb[sudo] password for user3: $ sudo tail -f /var/log/auth.log[sudo] password for user3:Mar 17 21:12:32 Ubuntu18 systemd-logind[559]: New session 24 of user user3.Mar 17 21:12:49 Ubuntu18 sudo: user3 : TTY=pts/0 ; PWD=/home/user3 ; USER=root ; COMMAND=/bin/systemctl restart mariadbMar 17 21:12:49 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by user3(uid=0)Mar 17 21:12:53 Ubuntu18 sudo: pam_unix(sudo:session): session closed for user rootMar 17 21:13:08 Ubuntu18 sudo: user3 : TTY=pts/0 ; PWD=/home/user3 ; USER=root ; COMMAND=/usr/bin/tail -f /var/log/auth.logMar 17 21:13:08 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by user3(uid=0)
关于“怎么在Linux中配置sudo访问权限”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。