在Linux系统中查看用户信息有多种方法,以下是常用的命令和详细说明:
who # 显示当前登录用户及登录时间、终端信息
w # 更详细的登录用户信息(包括正在执行的命令)
users # 仅显示当前登录的用户名列表
cat /etc/passwd # 查看所有用户(包括系统用户)
输出格式:
username:x:UID:GID:description:home_directory:shell
例如:ubuntu:x:1000:1000:Ubuntu User:/home/ubuntu:/bin/bash
仅提取用户名:
cut -d: -f1 /etc/passwd
getent passwd # 等同于cat /etc/passwd(支持LDAP等扩展)
grep -v /sbin/nologin /etc/passwd # 过滤不可登录用户
groups [username] # 查看指定用户的所属组(不填参数则查当前用户)
id [username] # 显示用户UID、GID及所属组信息
last # 查看用户登录历史(读取/var/log/wtmp)
lastlog # 显示所有用户最近一次登录时间
grep '^sudo' /etc/group # 查看sudo组成员
sudo -l # 查看当前用户的sudo权限
useradd -l # 查看useradd命令选项(创建用户)
usermod -l # 修改用户属性
userdel -l # 删除用户
快速列出所有可登录用户:
grep -v "/sbin/nologin" /etc/passwd | cut -d: -f1
检查某用户是否存在:
id username 2>/dev/null && echo "用户存在" || echo "用户不存在"
查看用户的家目录:
grep "^username:" /etc/passwd | cut -d: -f6
/etc/passwd
包含所有用户,但部分用户(如nobody
)是系统服务用的伪用户。如果需要进一步分析用户权限或行为,可以结合 ls -l /home
、sudo -U username
等命令。