最直接查看Linux所有用户的方法是运行cat /etc/passwd,该文件记录了每个用户账户的基本信息,每行代表一个用户,包含用户名、UID、GID、家目录和Shell等七项内容,其中密码字段以x代替,实际加密密码存于/etc/shadow。通过awk -F: '($3 >= 1000) && ($7 != "/sbin/nologin") && ($7 != "/bin/false") {print $1}' /etc/passwd可筛选出可登录的普通用户,排除系统账户。此外,getent passwd能从NIS、LDAP等源获取更完整的用户列表,cut -d: -f1 /etc/passwd仅提取用户名便于脚本处理,compgen -u列出Shell识别的所有用户,而id命令用于查看特定用户的UID、GID及所属组信息,适用于权限排查场景。

在Linux系统中,要查看所有用户,最直接和基础的方法就是查看
/etc/passwd
要查看系统中所有用户,你只需在终端中运行以下命令:
cat /etc/passwd
这个命令会直接将
/etc/passwd

/etc/passwd
说起Linux用户管理,
/etc/passwd
passwd
/etc/shadow
passwd
x
每一行都由冒号
:
x
/etc/shadow
/bin/bash
/bin/zsh
/sbin/nologin
/bin/false
理解这些字段,你就能从原始数据中快速定位和分析用户账户的各种属性了。

当我们查看
/etc/passwd
daemon
bin
sys
一个常用的方法是根据UID来判断。在大多数Linux发行版中,UID从1000开始的通常是普通用户。当然,这个阈值不是绝对的,有些系统可能会从500开始。同时,我们还要排除那些Shell设置为
/sbin/nologin
/bin/false
结合
awk
grep
# 筛选UID大于等于1000且Shell不是nologin/false的普通用户
awk -F: '($3 >= 1000) && ($7 != "/sbin/nologin") && ($7 != "/bin/false") {print $1}' /etc/passwd
# 或者,如果你只想看那些明确有登录Shell的账户
grep -v "/sbin/nologin" /etc/passwd | grep -v "/bin/false" | awk -F: '{print $1}'第一条命令更精确地结合了UID和Shell的判断。第二条命令则更侧重于排除那些无法登录的账户,然后列出用户名。实际使用中,我更倾向于第一种,因为它能更准确地捕捉到“普通用户”这个概念。毕竟,有些系统账户的UID可能也会被调整到1000以上,但它们通常还是会配置成
nologin

除了直接
cat /etc/passwd
getent passwd
getent
/etc/passwd
getent passwd
getent passwd
输出格式与
cat /etc/passwd
cut -d: -f1 /etc/passwd
cut
-d:
-f1
cut -d: -f1 /etc/passwd
这对于需要将用户名导入到脚本或进行其他批量操作时非常有用。
compgen -u
/etc/passwd
compgen -u
这个列表通常会包含所有本地和可能通过NSS(Name Service Switch)配置的用户。
id <username>
id
id your_username
了解这些不同的方法,可以让你在日常的系统管理中更加游刃有余。比如,排查用户权限问题时,
id
cut
awk
cat /etc/passwd
getent passwd
以上就是Linux如何查看系统中所有用户的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号