简介
在这个实验中,你将学习如何检查用户在 Linux 系统中是否拥有 sudo 权限。你将探索三种常见的方法:直接使用 sudo -l
测试 sudo 权限、检查 /etc/sudoers
配置文件,以及验证用户是否属于 sudo
组。
通过完成这些步骤,你将掌握在 Linux 环境中理解和验证与管理任务相关的用户权限的实用技能。
在这个实验中,你将学习如何检查用户在 Linux 系统中是否拥有 sudo 权限。你将探索三种常见的方法:直接使用 sudo -l
测试 sudo 权限、检查 /etc/sudoers
配置文件,以及验证用户是否属于 sudo
组。
通过完成这些步骤,你将掌握在 Linux 环境中理解和验证与管理任务相关的用户权限的实用技能。
在这一步中,你将学习如何使用 sudo -l
命令检查你的 sudo
权限。sudo
(超级用户执行)允许被授权的用户以超级用户或其他用户的身份执行命令,具体取决于安全策略的规定。
sudo -l
命令会列出用户在当前主机上被允许运行的命令,或者在指定主机上允许运行的命令。
让我们来检查当前用户(labex
)的 sudo
权限。如果终端尚未打开,请打开它。
输入以下命令并按回车键:
sudo -l
你应该会看到类似以下的输出:
Matching Defaults entries for labex on ...:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User labex may run the following commands on ...:
(ALL : ALL) NOPASSWD: ALL
此输出表明用户 labex
可以以所有用户的身份(ALL : ALL
)运行所有命令,并且无需输入密码(NOPASSWD: ALL
)。这证实了你的 labex
用户拥有完整的 sudo
权限,且无需密码。
理解 sudo
对于在 Linux 中管理权限和执行管理任务至关重要。
点击 继续 进入下一步。
在这一步中,你将查看 /etc/sudoers
文件,它是 sudo
的主要配置文件。该文件决定了哪些用户或用户组可以以哪些用户的身份运行哪些命令。
重要提示: 直接编辑 /etc/sudoers
文件可能会有风险,如果操作不当,可能会导致你无法访问系统。通常建议使用 visudo
命令来编辑此文件,因为它可以进行语法检查。不过,在这一步中,我们将仅使用 cat
命令查看文件内容,以了解其结构。
由于 /etc/sudoers
是一个系统文件,你需要 sudo
权限才能读取它。
在终端中输入以下命令并按回车键:
sudo cat /etc/sudoers
你将看到 /etc/sudoers
文件的内容。查找定义用户或用户组权限的行。你可能会看到类似以下的行(注释以 #
开头):
#
## This file MUST be edited with the 'visudo' command as root.
#
## Please consider adding local content in /etc/sudoers.d/ instead of
## directly modifying this file.
#
## See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
## Host alias specification
## User alias specification
## Cmnd alias specification
## User privilege specification
root ALL=(ALL:ALL) ALL
## Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
## See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
%sudo ALL=(ALL:ALL) ALL
这一行尤为重要。它表示 sudo
组(%sudo
)的任何成员都可以在任何主机(ALL
)上以任何用户(ALL
)和任何用户组(ALL
)的身份执行任何命令(ALL
)。这是在基于 Debian 的系统(如 Ubuntu)中向用户授予管理权限的常见方式。
通过查看此文件,你可以深入了解系统上 sudo
权限的配置方式。
点击 继续 进入下一步。
在上一步中,你在 /etc/sudoers
文件中看到 sudo
组的成员拥有完整的 sudo
权限。在这一步中,你将使用 groups
命令验证 labex
用户确实是 sudo
组的成员。
groups
命令会显示每个指定用户名所属的主组和附属组的名称,如果未指定用户名,则显示当前进程所属的组。
在终端中输入以下命令并按回车键:
groups
你应该会看到类似以下的输出,列出 labex
用户所属的组:
labex sudo ssl-cert public
此输出表明 labex
用户是 labex
、sudo
、ssl-cert
和 public
组的成员。列表中存在 sudo
组,这证实了根据 /etc/sudoers
文件,labex
用户属于被授予 sudo
权限的组。
或者,你可以在 groups
命令中指定用户名:
groups labex
输出结果是一样的:
labex : labex sudo ssl-cert public
这一步强化了系统中组 membership(成员身份)与 sudo
权限之间的关联。
点击 继续 完成此实验。
在这个实验中,你学习了如何检查 Linux 系统中用户是否拥有 sudo 访问权限。你首先使用 sudo -l
命令列出当前用户被允许以 sudo 权限运行的命令,这证实了 labex
用户无需密码即可拥有完全的 sudo 访问权限。
接着,你使用 cat
命令查看 /etc/sudoers
文件,以了解它在配置 sudo 权限方面的作用,不过需要强调的是,推荐使用 visudo
工具来编辑此文件。最后,你通常会使用 groups
命令验证用户是否属于 sudo
组,因为加入该组是授予 sudo 访问权限的常见方式。