Linux 的 id 命令

id 是 Linux 系统中一个常用的命令行工具,用于显示用户和组的身份信息。

基本功能

id 命令可以显示当前用户或指定用户的以下信息:

  • 用户 ID (UID)
  • 主组 ID (GID)
  • 所属的所有组 (Groups)
  • 用户名和组名(当与数字 ID 对应时)

常用命令格式

bash 复制代码
id [选项] [用户名]

如果不指定用户名,则显示当前用户的信息。

主要选项

  1. -u:仅显示用户 ID (UID)

    bash 复制代码
    $ id -u
    1000
  2. -g:仅显示主组 ID (GID)

    bash 复制代码
    $ id -g
    1000
  3. -G:显示用户所属的所有组 ID

    bash 复制代码
    $ id -G
    1000 4 24 27 30 46 108 124
  4. -n:显示名称而非数字 ID(需与 -u/-g/-G 配合使用)

    bash 复制代码
    $ id -ng
    users
  5. -r:显示实际 ID 而非有效 ID(在 setuid/setgid 程序中有用)

实用示例

  1. 显示当前用户的完整信息:

    bash 复制代码
    $ id
    uid=1000(user1) gid=1000(user1) groups=1000(user1),4(adm),24(cdrom),27(sudo)
  2. 显示指定用户的信息:

    bash 复制代码
    $ id root
    uid=0(root) gid=0(root) groups=0(root)
  3. 获取当前用户的用户名:

    bash 复制代码
    $ id -un
    user1
  4. 检查用户是否属于特定组(结合 grep 使用):

    bash 复制代码
    $ id | grep sudo

应用场景

  1. 脚本编写:在自动化脚本中获取用户权限信息

    bash 复制代码
    if [ $(id -u) -ne 0 ]; then
        echo "请使用 root 用户运行此脚本"
        exit 1
    fi
  2. 权限调试:检查用户所属组是否包含所需的权限组

  3. 系统管理:快速查看多个用户的权限配置情况

  4. 安全审计:验证用户的组成员关系是否符合安全策略

注意事项

  1. 普通用户只能查看自己和部分其他用户的信息,而 root 用户可以查看所有用户的信息

  2. 在某些系统上,id 命令的输出格式可能略有不同

  3. 在嵌入式系统或最小化安装中,id 命令可能不可用

相关推荐
AlfredZhao2 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐3 天前
Linux内存扩容指南
linux
zylyehuo3 天前
Linux 彻底且安全地删除文件
linux
用户805533698034 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297914 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF4 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者6 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo6 天前
Linux系统中网线与USB网络共享冲突
linux
荣--6 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森6 天前
动手实战学 Docker — 从零到集群编排完全指南
运维