查看当前用户
# 查看当前有哪些用户登录着
who
# 输出示例:
# alice pts/0 2025-05-22 10:00 (192.168.1.100)
# alice pts/1 2025-05-22 11:30 (192.168.1.100) ← 同一个人,第二个会话
# bob pts/2 2025-05-22 12:00 (192.168.1.200)
# 更详细的信息
w
# 可以看到每个用户正在执行什么命令
# 查看当前所有进程及其所属用户
ps aux | head -20
查看当前账户数
查看 /etc/passwd :
# 统计系统中总共有多少个用户(包括系统用户和普通用户)
wc -l /etc/passwd
# 输出:42 /etc/passwd ← 表示有 42 个账户
# 查看所有账户列表
cat /etc/passwd
# 只看用户名那一列
cut -d: -f1 /etc/passwd
# 统计有多少个普通用户(UID ≥ 1000)
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
# 统计有多少个系统用户(UID < 1000)
awk -F: '$3 < 1000 {print $1}' /etc/passwd | wc -l
使用 getent 命令:
# 列出所有用户
getent passwd
# 统计总数
getent passwd | wc -l
查看哪些用户有登录权限
# 查看可以登录的系统用户(shell 不是 /sbin/nologin 或 /bin/false)
grep -v '/sbin/nologin\|/bin/false' /etc/passwd
# 或者更直接地查看 /etc/passwd 中有哪些用户的 shell 是正常的
awk -F: '$7 != "/sbin/nologin" && $7 != "/bin/false" {print $1, $7}' /etc/passwd
查看当前活跃会话
# 当前有哪些用户登录着(可能有多个会话)
who | cut -d' ' -f1 | sort -u