当前位置:首页 > 问答 > 正文

用户管理|权限查询|Linux系统如何查看当前所有用户及详细信息

Linux系统如何查看当前所有用户及详细信息

场景引入
早上刚泡好咖啡,同事突然在群里@你:"服务器上是不是有个测试账号没清理?现在权限乱了!"你盯着屏幕愣了两秒——这台老Linux服务器上到底有多少用户?哪些是僵尸账号?别慌,掌握这几个命令,3分钟就能把用户信息摸得透透的。


快速查看所有用户名

方法1:直接读取用户清单

cat /etc/passwd | cut -d: -f1

效果

root
daemon
www-data
ubuntu
...

原理
/etc/passwd文件存储所有用户基础信息,用cut截取第一列(用户名),比直接看原始文件清爽得多。

方法2:使用getent命令(兼容LDAP等外部用户)

getent passwd | cut -d: -f1

适用场景
当系统配置了LDAP/AD域账号时,这个方法能显示包括本地和网络账户在内的完整列表。


查看用户详细信息

查看完整用户属性

getent passwd 用户名  # getent passwd ubuntu

输出示例

用户管理|权限查询|Linux系统如何查看当前所有用户及详细信息

ubuntu:x:1000:1000:Ubuntu User:/home/ubuntu:/bin/bash

字段解析(从左到右):

  • 用户名
  • 密码占位符(x表示密码在/etc/shadow)
  • 用户UID
  • 主组GID
  • 描述信息
  • 家目录路径
  • 默认shell

查看用户所属组

groups 用户名  # 或 id 用户名

真实案例

$ groups www-data
www-data : www-data adm dialout cdrom floppy

发现这个web服务账号意外加入了adm组(可读日志),可能存在安全隐患。


高级排查技巧

揪出登录过的用户

lastlog  # 显示所有用户最近登录时间
last     # 查看历史登录记录

典型输出

用户管理|权限查询|Linux系统如何查看当前所有用户及详细信息

用户名     端口     来源            时间
root     pts/1    192.168.1.100   Tue Jul 15 09:30:01

突然出现的陌生IP要警惕!

检测异常账号(UID为0的非root用户)

awk -F: '$3==0 && $1!="root"{print}' /etc/passwd

安全提示
任何UID为0的账号都拥有root权限,正常情况下应只有root用户。


可视化工具推荐

用awk格式化输出

awk -F: '{printf "%-15s %-10s %-15s\n", $1,$3,$6}' /etc/passwd

效果

root            0          /root          
ubuntu          1000       /home/ubuntu

交互式查看(需要安装)

sudo apt install finger  # Debian系
finger 用户名

输出亮点
显示用户真实姓名、办公室位置(如果配置过)等企业环境常用信息。

用户管理|权限查询|Linux系统如何查看当前所有用户及详细信息


Checklist

  • 基础查询:/etc/passwd + cut
  • 完整信息:getent passwd
  • 权限审计:id + groups
  • 安全排查:lastlog + UID检测

下次再遇到用户权限问题,不妨先按这个清单过一遍,说不定还能发现陈年遗留的测试账号呢!

发表评论