Linux系统中,如何查看所有已创建的用户信息?

在Linux系统中,用户管理是系统运维的基础操作之一,准确查看用户信息有助于系统监控、权限管理和安全审计,Linux提供了多种命令和工具来查看不同维度的用户信息,包括当前登录用户、系统用户列表、用户详细信息、用户组关系以及历史登录记录等,本文将详细介绍这些查看用户的方法及其使用场景,并通过表格总结常用命令,最后附相关FAQs解答常见问题。

linux如何查看用户

查看当前登录用户

当前登录用户指正在操作系统的用户,通常包括本地登录和远程登录用户,以下命令可快速获取当前用户信息:

whoami命令

whoami是最简单的命令,仅显示当前有效用户的用户名(即当前操作权限对应的用户)。
示例

$ whoami
root

说明:若通过su命令切换用户(如su - username),whoami会显示切换后的用户;若使用su username(不加),可能仍显示原用户,因为未完全切换环境变量。

who am i命令

who am i显示当前登录终端的用户信息,包括用户名、终端设备(如pts/0表示远程终端,tty1表示本地终端)和登录时间。
示例

$ who am i
root     pts/0        2023-10-01 14:30 (192.168.1.100)

说明who am iwho命令的区别在于,前者仅显示当前终端的登录用户,后者会显示所有登录用户。

logname命令

logname显示登录用户的用户名(即初始登录时的用户),与whoami类似,但更侧重“登录”而非“有效用户”。
示例

$ logname
admin

说明:若通过sudo提权执行命令,logname仍显示原始登录用户,而whoami显示root

查看系统用户列表

系统用户列表存储在/etc/passwd文件中,该文件是Linux用户账户的核心配置文件,记录了所有用户的基本信息。

直接查看/etc/passwd文件

/etc/passwd每行代表一个用户,字段以冒号()分隔,格式为:
用户名:密码占位符:UID:GID:用户描述:家目录:默认Shell

  • 密码占位符:通常为x,表示密码存储在/etc/shadow文件中;若为空字符串,表示无密码(不推荐)。
  • UID(用户ID):唯一标识用户,0为超级用户(root),1-999为系统用户(服务账户),1000+为普通用户(具体数值可能因发行版而异)。
  • GID(主组ID):用户所属主组的ID,对应/etc/group文件中的组。
  • 家目录:用户登录后的默认工作目录,如/home/username
  • 默认Shell:用户登录后执行的命令解释器,如/bin/bash/bin/nologin(禁止登录)。

查看方法

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
admin:x:1000:1000:Admin User:/home/admin:/bin/bash

优化查看:若仅需用户名列表,可通过awkcut提取:

$ awk -F: '{print $1}' /etc/passwd  # 按冒号分隔,输出第1列(用户名)
$ cut -d: -f1 /etc/passwd           # 同上,-d指定分隔符,-f指定字段

使用getent命令查看用户数据库

getent命令可查询系统配置数据库(包括/etc/passwd/etc/group等),支持通过服务名(如passwd)查询。
示例

$ getent passwd admin  # 查看指定用户信息
admin:x:1000:1000:Admin User:/home/admin:/bin/bash
$ getent passwd | grep '/bin/bash'  # 查看所有允许登录的用户(Shell为/bin/bash)

说明:若系统使用LDAP或NIS等集中式用户管理,getent会同步查询远程数据库,而直接读取/etc/passwd仅能查看本地用户。

linux如何查看用户

查看用户详细信息

除了用户名,还需了解用户的UID、GID、所属组、家目录等详细信息,以下命令可满足需求:

id命令

id命令显示用户的UID、GID及所属组信息,语法为id [选项] [用户名]
常用选项

  • -u:仅显示UID
  • -g:仅显示主组GID
  • -G:显示所有所属组的GID
  • -n:显示名称而非ID(需配合-u/-g/-G使用)

示例

$id admin
uid=1000(admin) gid=1000(admin) groups=1000(admin),27(sudo),1001(docker)  # 用户admin的UID、主组GID及所属组
$id -u admin  # 仅显示UID
1000
$id -Gn admin  # 显示所属组名称
admin sudo docker

finger命令

finger命令可显示用户的详细信息,包括登录名、全名、目录、Shell、登录时间等(需安装,Ubuntu/Debian通过sudo apt install finger安装)。
示例

$ finger admin
Login: admin            Name: Admin User
Directory: /home/admin  Shell: /bin/bash
On since Fri Oct  1 14:30 (CST) on pts/0 from 192.168.1.100
No mail.
No Plan.

说明:若用户Shell为/usr/sbin/nologinfinger会显示“No login”信息。

查看登录用户及活动状态

对于系统运维,需实时监控当前登录用户及其活动,以下命令可提供详细状态:

who命令

who命令显示当前登录系统的用户列表,包括用户名、终端、登录时间和空闲时间。
示例

$ who
root     pts/0        2023-10-01 14:30 (192.168.1.100)  # 远程SSH登录
admin    tty1         2023-10-01 09:15                  # 本地终端登录

说明pts/0表示伪终端(远程登录),tty1tty6表示本地虚拟终端。

w命令

w命令是who的增强版,除显示登录用户外,还包含系统负载、用户执行的命令等信息。
示例

$ w
 14:35:01 up 10 days,  3:15,  2 users,  load average: 0.05, 0.01, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.100    14:30    1.00s  0.05s  0.02s w
admin    tty1     -                09:15   5:20m  0.03s  0.03s -bash

字段说明

  • USER:用户名
  • TTY:终端设备
  • FROM:登录来源IP(远程登录)或(本地登录)
  • LOGIN@:登录时间
  • IDLE:用户空闲时间
  • JCPU:该终端所有进程占用CPU总时间
  • PCPU:当前进程占用CPU时间
  • WHAT:当前执行的命令

users命令

users命令以简洁格式显示当前登录用户名,重复用户名表示多个登录会话。
示例

$ users
root admin admin

说明:输出表示admin用户有两个登录会话(如本地终端和SSH远程登录)。

查看用户组信息

用户与组的关系是Linux权限管理的基础,以下命令可查看用户所属组及组内成员:

linux如何查看用户

/etc/group文件

/etc/group文件存储系统组信息,格式为:
组名:密码占位符:GID:组成员列表

查看方法

$ cat /etc/group
root:x:0:
sudo:x:27:admin,alice
docker:x:1001:admin,bob

说明:组成员列表为空时,表示无额外成员;若组名与用户名相同(如admin:x:1000:),则该组是用户的主组。

groups命令

groups命令显示指定用户(或当前用户)所属的所有组。
示例

$ groups admin  # 查看用户admin所属组
admin : admin sudo docker
$ groups        # 查看当前用户所属组
root : root sudo

查看用户登录历史

为排查安全事件或审计用户行为,需查看历史登录记录:

last命令

last命令读取/var/log/wtmp文件(记录所有登录和退出信息),显示用户登录历史,包括用户名、终端、来源IP、登录时间和退出时间。
示例

$ last
admin    pts/0        192.168.1.100    Mon Sep 25 09:15 - 09:30  (00:15)
root     pts/1        192.168.1.101    Sun Sep 24 16:20 - 16:45  (00:25)
reboot   system boot  5.4.0-150-generic  Sat Sep 23 08:00 - 09:00 (1+01:00)

说明reboot行表示系统重启时间;若显示still logged in,表示用户尚未退出;wtmp文件可能较大,可通过last -n 10仅显示最近10条记录。

常用查看用户命令总结

以下表格总结了Linux中查看用户的核心命令及其功能、示例和说明:

命令 功能 示例 说明
whoami 显示当前有效用户名 whoami 简单快速,适合快速确认当前用户
who am i 显示当前登录终端用户信息 who am i 包含终端和登录时间,区分本地/远程
cat /etc/passwd 查看所有系统用户列表 cat /etc/passwd 显示用户完整信息,字段需解析
getent passwd 查询用户数据库(含远程) getent passwd admin 支持集中式用户管理(如LDAP)
id 显示用户UID、GID及所属组 id admin 适合查看用户详细身份信息
finger 显示用户详细信息 finger admin 需安装,包含登录状态和计划等信息
who 显示当前登录用户列表 who 简洁显示用户、终端和登录时间
w 显示登录用户及系统负载 w 增强版who,包含用户执行命令
users 显示当前登录用户名 users 简洁格式,重复用户名表示多会话
groups 显示用户所属组 groups admin 快速查看用户组关系
last 查看用户登录历史 last -n 10 读取/var/log/wtmp,适合安全审计

相关问答FAQs

Q1:如何区分系统用户和普通用户?
A:Linux中通过UID(用户ID)区分系统用户和普通用户:

  • 系统用户:UID通常为1-999(不同发行版略有差异,如CentOS 7中UID小于1000为系统用户),用于运行系统服务(如daemonbin),默认Shell为/usr/sbin/nologin,禁止登录系统。
  • 普通用户:UID≥1000,可正常登录系统,拥有家目录和默认Shell(如/bin/bash)。
    查看方法

    # 查看所有系统用户(UID<1000)
    awk -F: '$3 < 1000 {print $1}' /etc/passwd
    # 查看所有普通用户(UID≥1000)
    awk -F: '$3 >= 1000 {print $1}' /etc/passwd

Q2:whow命令有什么区别?哪个更适合监控实时用户活动?
A:whow均显示当前登录用户,但功能和侧重点不同:

  • who:简洁显示用户名、终端、登录时间和空闲时间,适合快速查看“谁在登录”。
  • w:在who基础上增加系统负载(load average)、用户执行的命令(WHAT)及CPU占用时间(JCPU/PCPU),适合监控用户实时活动(如是否执行高危命令)。
    选择建议:若仅需确认登录用户,用who;若需分析用户行为(如排查异常操作),用w更全面。

    # 查看当前登录用户及系统负载
    w
    # 查看用户最近执行的命令(重点关注sudo、rm等高危操作)
    w | grep -E 'sudo|rm|chmod'

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/17162.html

(0)
酷番叔酷番叔
上一篇 4小时前
下一篇 4小时前

相关推荐

  • linux下如何访问网址

    linux下可通过浏览器直接输入网址访问,也能用命令如curl

    2025年8月16日
    600
  • Linux如何一键设置DNS提速?所有发行版适用

    DNS的作用与配置原理DNS(域名系统)将域名(如 www.example.com)转换为IP地址,Linux通过以下文件管理DNS:/etc/resolv.conf:存储DNS服务器地址(临时修改可能被覆盖),/etc/systemd/resolved.conf:systemd系统的永久配置,网络配置文件:如……

    2025年7月23日
    1100
  • linux 如何启动zk

    Linux 上启动 ZooKeeper,通常使用命令 zkServer.sh start。

    2025年8月13日
    600
  • 如何轻松安装Win10和Linux双系统?

    准备工作(关键步骤)备份重要数据使用移动硬盘或云存储备份所有个人文件(文档、照片等),创建 Windows 系统恢复盘(控制面板 → 备份和还原 → 创建系统修复盘),准备工具16GB 以上 U 盘(2个):一个用于 Windows 10 安装盘,一个用于 Linux 启动盘,下载资源:Windows 10 官……

    2025年7月6日
    2200
  • 现代浏览器必备编解码器与DRM支持?

    现代浏览器的核心要素包括必要的编解码器和DRM支持,编解码器确保流畅播放多种音视频格式,DRM则保障受保护内容的合法访问,二者共同构成完整多媒体体验的基础。

    2025年7月1日
    2600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信