千家信息网

怎么在Linux中配置sudo访问权限

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章将为大家详细讲解有关怎么在Linux中配置sudo访问权限,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是 sudo?sudo 是一个程序,普通用户可以
千家信息网最后更新 2025年12月02日怎么在Linux中配置sudo访问权限

这篇文章将为大家详细讲解有关怎么在Linux中配置sudo访问权限,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

什么是 sudo?

sudo 是一个程序,普通用户可以使用它以超级用户或其他用户的身份执行命令,是由安全策略指定的。

sudo 用户的访问权限是由 /etc/sudoers 文件控制的。

sudo 用户有什么优点?

在 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 的系统,我们添加用户到 sudoadmin 组。

  • 手动添加用户到 /etc/group 文件中。

  • visudo 命令添加用户到 /etc/sudoers 文件中。

如何在 RHEL/CentOS/OEL 系统中配置 sudo 访问权限?

在基于 RHEL 的系统中(如 Redhat (RHEL)、 CentOS 和 Oracle Enterprise Linux (OEL)),使用下面的三个方法就可以做到。

方法 1:在 Linux 中如何使用 wheel 组为普通用户授予超级用户访问权限?

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)
方法 2:在 RHEL/CentOS/OEL 中如何使用 /etc/group 文件为普通用户授予超级用户访问权限?

我们可以通过编辑 /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
方法 3:在 Linux 中如何使用 /etc/sudoers 文件为普通用户授予超级用户访问权限?

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/Ubuntu 系统中如何配置 sudo 访问权限?

在基于 Debian 的系统中(如 Debian、Ubuntu 和 LinuxMint),使用下面的三个方法就可以做到。

方法 1:在 Linux 中如何使用 sudo 或 admin 组为普通用户授予超级用户访问权限?

sudoadmin 是基于 Debian 的系统中的特殊组,它提供额外的权限,可以授权用户像超级用户一样执行受到限制的命令。

注意,应该在 /etc/sudoers 文件中激活 sudoadmin 组来获得该访问权限。

# 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)
方法 2:在 Debian/Ubuntu 中如何使用 /etc/group 文件为普通用户授予超级用户访问权限?

我们可以通过编辑 /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
方法 3:在 Linux 中如何使用 /etc/sudoers 文件为普通用户授予超级用户访问权限?

sudo 用户的访问权限是被 /etc/sudoers 文件控制的。因此,只需将用户添加到 sudoers 文件中的 sudoadmin 组下即可。

只需通过 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访问权限"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

用户 文件 权限 系统 命令 普通 方法 账号 面的 只需 可以通过 魔术 配置 服务 检查 安全 手动 篇文章 身份 控制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 象宿网络技术有限公司西安 服务器 关机好吗 毕业实习技术报告数据库开发 风云天下有哪些服务器 国家网络安全等级三级 软件开发环境三个部分 网络安全工程师发展前景好吗 实惠的联想ts250服务器 小学生网络安全书信大赛 易点淘网络技术有限公司张翼明 贵州网络安全防疫知识 合肥国家网络安全宣传周 苹果手机吃鸡无法登陆到服务器 把图片放到数据库表中 东西湖区网络安全基地网站 网络安全知识问卷调查新闻稿 歌华有线网络技术部董悦 集思优网络技术怎么样 计算机软件开发需要哪些证书 php6数据库 网络安全事件与数据分析 兴华软件开发平台 价格 数据库map转json 服务器如何做转接 数据库中的关系 打好网络安全风险防控阻击仗 常见的红外数据库 网络安全监测装置部署方案 中山市券鱼网络技术有限公司 大势至服务器共享文件管理
0