检查当前访问权限:命令 whoami
, id
1. 我是谁?命令 whoami
每个 Linux 用户都在特定的账户下操作,该账户具有自己的权限、限制和所属的组。在本次讲座中,你将学习如何检查当前使用的账户、拥有的权限以及所属的组。了解用户的当前参数无论是日常工作,还是在解决安全问题、管理和调试时都非常重要。
当你在 Linux 系统中工作时,知道自己当前使用的是哪个账户非常有用。比如,如果你不小心以特权账户(root 用户)登录了系统,你可能会对系统文件造成无法挽回的变化。为了避免这种情况,我们可以使用命令 whoami
。
语法
whoami
命令的作用
命令 whoami
会显示当前操作系统中使用的用户名。它回答了一个非常重要的问题:"我是谁?"
示例
$ whoami
student
在此示例中,输出 student
表明你以名称为 student
的用户登录了系统。如果你是以具有更高权限的用户(例如 root
)操作,那么输出如下:
$ whoami
root
为什么这很重要?
想象一下,你在用命令删除目录中的所有文件(例如 rm -rf /important_directory
)。如果你是普通用户,系统会限制你执行此操作,前提是你没有相应的权限。但如果你是 root
用户,系统会毫无犹豫地执行你的命令。命令 whoami
可以帮助你避免陷入这种不愉快的境地。
2. 深入了解用户信息: 命令 id
知道自己的用户名是好事,但这对深入理解你在系统中的权限和特权还不够。要获取更详细的信息,可以使用命令 id
。
语法
id [用户]
如果未指定用户名,id
命令会显示当前用户的信息。如果你指定了其他用户名,则可以检查该用户账户的详细信息。
命令id
的输出是什么?
- UID (User ID) — 用户的唯一标识符。
- GID (Group ID) — 用户主要组的唯一标识符。
- 组列表 — 用户所属的所有组(包括主要组)。
示例
$ id
uid=1001(student) gid=1001(student) 组=1001(student),27(sudo),1002(developers)
- UID=1001: 这是当前用户 (student) 的唯一标识符。在Linux系统中,用户
root
的UID始终为0。 - GID=1001: 这是用户 (student) 的主要组的标识符。
- 组=1001(student), 27(sudo), 1002(developers): 这里列出了用户所属的其他组。例如,组
sudo
允许该学生以特权用户身份执行命令。
如果我们为其他用户运行命令:
$ id user2
uid=1002(user2) gid=1002(user2) 组=1002(user2),1001(developers)
可以看到用户user2
属于组developers
。
3. 在实际工作中使用 UID 和 GID
每个用户和组都会分配自己的数字标识符 (UID 和 GID)。它们在系统中起着至关重要的作用,通常替代用户和组的文本名称。为什么需要这样做?
- 某些系统进程为了效率,直接处理数字标识符。
- 文件和文件夹的访问权限不是根据用户或组的名称,而是根据它们的 UID 和 GID 确定的。
- 在配置文件和日志文件中(例如
/etc/passwd
),你可能会看到的不是用户名称,而是它们的 UID。
4. 使用 groups
查看组
另外,你可以使用命令 groups
来找到当前用户属于哪些组。
语法
groups [用户]
如果省略用户名,你会得到当前用户账户的组列表。如果提供用户名,你会看到指定用户的组。
示例:
$ groups
student developers sudo
$ groups user2
user2 developers
5. 使用命令
现在来点练习巩固下学到的知识。
检查当前用户账号
- 打开终端。
执行以下命令:
whoami
检查你的用户名。
- 运行命令
sudo su
(系统会要求你输入密码),然后再次执行whoami
,看看你现在以谁的身份运行。
获取用户信息
执行以下命令:
查看你的用户的 UID、GID 信息以及所属组。id
创建一个新用户(如果你有
sudo
权限):sudo adduser testuser
然后执行:
id testuser
组的归属分析
执行:
groups
注意你的用户属于哪些组。
将当前用户添加到一个新组:
sudo groupadd testgroup sudo usermod -aG testgroup $(whoami)
检查结果:
groups
6. 常见错误和棘手点
很多新手会混淆
whoami
和id
。记住:whoami
只显示当前用户的名称,而id
提供更详细的权限和组信息。如果你没有管理员权限(无法使用
sudo
),你可能无法将用户加入组或更改其参数。这种情况下,你需要联系系统管理员。使用
id
查询不存在的用户会报错:$ id nonexistinguser id: ‘nonexistinguser’: 无此用户
现在你知道了如何检查当前活跃的用户以及他拥有的权限和访问权限。命令 whoami
和 id
看似简单,但它们在理解Linux系统中的用户和权限管理中起着关键作用。在实际工作中,你经常会用到它们来诊断问题、检查权限以及管理用户。
GO TO FULL VERSION