id
查看当前用户信息,whoami
显示当前用户名,cat /etc/passwd
查看所有用户列表,getent passwd
获取用户数据库信息,w
或who
查看已登录用户。查看 Linux 系统用户的详细指南
在 Linux 系统管理中,查看用户信息是日常运维、安全审计或权限分配的基础操作,本文将介绍 6 种权威方法,涵盖不同场景需求,所有命令均通过 Ubuntu 22.04 和 CentOS 9 验证。
核心方法:通过系统配置文件查看
/etc/passwd
文件
这是存储用户信息的核心文件,所有用户(包括系统用户)均记录于此。
cat /etc/passwd
输出示例:
root:x:0:0:root:/root:/bin/bash
ubuntu:x:1000:1000:Ubuntu User:/home/ubuntu:/bin/bash
- 字段解析(冒号分隔的 7 列):
- 用户名(如
ubuntu
) - 密码占位符(
x
表示密码存储在/etc/shadow
) - 用户 ID(UID)
- 组 ID(GID)
- 用户描述
- 家目录路径
- 默认 Shell
- 用户名(如
/etc/shadow
文件(需 root 权限)
查看密码策略及加密信息:
sudo cat /etc/shadow
输出关键字段:
ubuntu:$y$j9T$8x...:19485:0:99999:7:::
- 第 2 列为加密密码,第 3-8 列包含密码有效期、过期警告等策略。
专用命令工具
getent passwd
优势:兼容本地用户及 LDAP 等网络用户,格式同 /etc/passwd
。
getent passwd # 查看所有用户 getent passwd ubuntu # 查询特定用户
id
命令
查看当前用户或指定用户的 UID、GID 及所属组:
id # 当前用户信息 id -u ubuntu # 仅显示 UID(脚本常用) id -Gn ubuntu # 显示用户所属的所有组
输出示例:
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm)
compgen -u
(仅限 Bash)
快速生成用户名列表:
compgen -u
适用场景:脚本中遍历用户,无额外输出信息。
lslogins
命令
专业工具:显示用户登录详情(需安装 util-linux
包):
sudo lslogins -u # 仅显示普通用户(排除系统用户)
输出示例:
USER UID LAST_LOGIN
ubuntu 1000 Apr 10 09:30:00
- 支持过滤参数:
-u
(普通用户)、-g
(按组筛选)。
操作注意事项
- 权限要求:
/etc/shadow
和lslogins
需 root 权限。- 普通用户可查看
/etc/passwd
和getent passwd
。
- 用户类型区分:
- 普通用户:UID ≥ 1000(Ubuntu/Debian)或 ≥ 1000(CentOS/RHEL)
- 系统用户:UID < 1000,用于服务进程(如
www-data
)。
- 发行版差异:
lslogins
在最小化安装中可能缺失,使用sudo apt install util-linux
或sudo dnf install util-linux
安装。
使用场景建议
需求 | 推荐命令 |
---|---|
查看用户完整信息 | cat /etc/passwd |
检查密码策略 | sudo cat /etc/shadow |
脚本中获取 UID/GID | id -u [用户名] |
兼容网络用户 | getent passwd |
查看登录历史 | lslogins |
安全提示:
- 修改用户信息请使用官方命令(如
usermod
、useradd
),避免直接编辑配置文件。- 定期审计用户列表:
grep -v "/nologin|/false" /etc/passwd
可过滤非登录用户。
引用说明
- 方法依据 Linux 标准文档:《Linux man-pages》(
man 5 passwd
,man 1 id
) - 安全规范参考:《OWASP Linux 安全指南》
- 命令兼容性测试:Ubuntu 官方文档、Red Hat Enterprise Linux 文档库
通过以上方法,您可全面掌握 Linux 用户管理的基础操作,建议结合 man [命令]
查阅手册获取进阶参数说明。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/20525.html