Linux常用命令之id命令详解
id
命令详解
id
命令在 Linux 和 Unix 系统中用于显示用户的标识信息,包括用户ID(UID)、组ID(GID)以及用户所属的附加组。这个命令对于系统管理员和开发者来说非常有用,因为它能帮助他们确认运行命令或脚本的用户身份,从而确保正确的权限设置和数据安全。以下是对 id
命令的详细解释,包括其语法、选项和示例。
基本语法
id [选项] [用户名]
常用选项
-u
:仅显示用户的用户ID(UID)。-g
:仅显示用户的主组ID(GID)。-G
:显示用户所属的所有组ID(GID),包括主组和附加组。-n
:与-u
、-g
或-G
结合使用时,显示名称而不是ID。-r
:与-u
或-g
结合使用时,显示真实的用户ID或组ID,而不是有效的用户ID或组ID。-z
:输出时不包含任何额外的字符,适合脚本使用。-Z
:显示用户的 SELinux 安全上下文(如果启用了 SELinux)。--help
:显示帮助信息。--version
:显示命令的版本信息。
详细说明
1. 显示当前用户的完整信息
id
- 说明:显示当前用户的用户ID、主组ID以及所有附加组ID。
- 输出示例:
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
2. 显示特定用户的完整信息
id username
- 说明:显示指定用户的用户ID、主组ID以及所有附加组ID。
- 输出示例:
uid=1001(alice) gid=1001(alice) groups=1001(alice),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
3. 仅显示用户ID
id -u
- 说明:仅显示当前用户的用户ID(UID)。
- 输出示例:
1000
4. 仅显示主组ID
id -g
- 说明:仅显示当前用户的主组ID(GID)。
- 输出示例:
1000
5. 显示所有组ID
id -G
- 说明:显示当前用户所属的所有组ID(GID),包括主组和附加组。
- 输出示例:
1000 4 24 27 30 46 113 128
6. 显示所有组名
id -Gn
- 说明:显示当前用户所属的所有组名,包括主组和附加组。
- 输出示例:
username adm cdrom sudo dip plugdev lpadmin sambashare
7. 显示真实用户ID
id -ur
- 说明:显示当前用户的真正用户ID(UID),而不是有效的用户ID。
- 输出示例:
1000
8. 显示真实主组ID
id -gr
- 说明:显示当前用户的真正主组ID(GID),而不是有效的组ID。
- 输出示例:
1000
9. 输出时不包含任何额外的字符
id -z
- 说明:输出时不包含任何额外的字符,适合脚本使用。
- 输出示例:
uid=1000(username)gid=1000(username)groups=1000(username),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
10. 显示用户的 SELinux 安全上下文
id -Z
- 说明:显示用户的 SELinux 安全上下文(如果启用了 SELinux)。
- 输出示例:
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
示例
显示当前用户的完整信息
id
- 输出示例:
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
显示特定用户的完整信息
id alice
- 输出示例:
uid=1001(alice) gid=1001(alice) groups=1001(alice),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
仅显示用户ID
id -u
- 输出示例:
1000
仅显示主组ID
id -g
- 输出示例:
1000
显示所有组ID
id -G
- 输出示例:
1000 4 24 27 30 46 113 128
显示所有组名
id -Gn
- 输出示例:
username adm cdrom sudo dip plugdev lpadmin sambashare
显示真实用户ID
id -ur
- 输出示例:
1000
显示真实主组ID
id -gr
- 输出示例:
1000
输出时不包含任何额外的字符
id -z
- 输出示例:
uid=1000(username)gid=1000(username)groups=1000(username),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
显示用户的 SELinux 安全上下文
id -Z
- 输出示例:
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
注意事项
- 用户和组ID:用户ID(UID)和组ID(GID)是系统中唯一标识用户和组的数字。每个用户都有一个唯一的UID,每个组也有一个唯一的GID。
- 真实和有效ID:真实ID(Real ID)是指用户登录时的ID,有效ID(Effective ID)是指用户当前执行操作时的ID。通常情况下,这两个ID是相同的,但在某些情况下(如使用
sudo
命令)可能会不同。 - SELinux:如果系统启用了 SELinux,
id -Z
选项可以显示用户的 SELinux 安全上下文,这对于安全审计和调试非常有用。 - 权限:使用
id
命令通常不需要特殊权限,任何用户都可以查看自己的用户和组信息。但是,查看其他用户的详细信息可能需要适当的权限。
总结
id
命令是一个非常实用的工具,用于获取用户的标识信息。通过使用不同的选项,可以灵活地获取用户ID、组ID以及用户所属的附加组信息。