Linux如何查看系统用户?

查看所有系统用户

/etc/passwd 文件解析

这是存储用户信息的核心文件,需用 rootsudo 权限查看:

cat /etc/passwd

输出示例
root:x:0:0:root:/root:/bin/bash
每行包含 7个字段(以冒号分隔):

  • 用户名(如 root
  • 密码占位符x 表示密码在 /etc/shadow
  • 用户ID(UID):系统用户通常 UID < 1000,普通用户 UID ≥ 1000
  • 组ID(GID)
  • 用户描述(如全名)
  • 家目录路径
  • 默认Shell(如 /bin/bash/sbin/nologin 表示禁止登录)

getent 命令

兼容性更强(支持LDAP等数据库):

getent passwd

输出格式与 /etc/passwd 相同。

列出可登录用户

过滤有效Shell的用户:

grep -v "/nologin\|/false" /etc/passwd | cut -d: -f1

或使用 awk

awk -F: '$7 !~ /\/nologin|\/false/ {print $1}' /etc/passwd

查看当前登录用户

who 命令

显示已登录用户及登录源:

who

输出:用户名 终端 登录时间 IP地址

w 命令

更详细(含正在运行的命令):

w

输出包括:用户、终端、登录时间、空闲时间、当前进程。

users 命令

仅显示用户名:

users

查看用户登录历史

last 命令

审计用户登录记录:

last

显示:用户名、终端、IP、登录/登出时间。
关键参数

  • last -5:显示最近5条记录
  • last username:查看特定用户记录

查看特定用户信息

id 命令

检查用户UID、GID及所属组:

id username  # 如 id root

输出示例:uid=0(root) gid=0(root) groups=0(root)

finger 命令(需安装)

显示用户详细信息:

sudo apt install finger  # Debian/Ubuntu
finger username

输出:登录名、真实姓名、Shell、家目录等。


高级工具

lslogins 命令

专业用户管理工具(需安装 util-linux):

lslogins -u  # 查看所有用户

输出包含:UID、GID、最后登录时间、是否锁定等。

compgen 命令(仅限Bash)

生成用户列表:

compgen -u

注意事项

  1. 权限要求
    • 查看 /etc/passwd 无需特权,但修改需 root 权限。
    • 敏感文件(如 /etc/shadow)仅 root 可读。
  2. 安全建议
    • 禁止删除系统用户(UID<1000),可能导致服务崩溃。
    • 定期审计用户:检查异常UID为0的用户(非root)。
  3. 用户状态判断
    • 密码字段为 或 表示账户被锁定。
    • nologin Shell 用户无法登录系统(如服务账户)。

场景 推荐命令
查看所有用户 cat /etc/passwd
检查当前登录用户 wwho
审计登录历史 last
获取用户详细信息 idfinger
专业级用户管理 lslogins

重要提示:直接编辑用户文件(如 /etc/passwd)可能导致系统不稳定,建议使用 useraddusermod 等命令管理用户。


引用说明: 基于 Linux man-pages 官方文档(如 man 5 passwd)。

  • 命令兼容性参考 GNU Coreutils 及 util-linux 工具集。
  • 安全规范遵循 Linux Foundation 最佳实践指南。

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

(0)
酷番叔酷番叔
上一篇 2025年6月14日 08:18
下一篇 2025年6月14日 08:49

相关推荐

  • Linux下如何执行文件?命令步骤与权限设置指南

    在Linux系统中,执行文件是一个核心操作,但具体方法取决于文件的类型(可执行二进制文件、脚本文件等)和执行场景,本文将详细说明Linux下执行文件的各类方法、注意事项及常见场景,帮助用户全面掌握相关操作,执行文件的前提:文件权限Linux系统通过文件权限控制用户对文件的访问,执行文件的前提是文件具有“可执行权……

    2025年9月30日
    11100
  • 如何具体操作将Linux系统的中文界面修改为英文显示语言版本?

    在Linux系统中将界面语言从中文切换为英文,通常可以通过图形界面或命令行操作实现,不同发行版的操作步骤略有差异,但核心逻辑一致,以下是针对主流Linux发行版的详细操作指南,涵盖系统级和用户级修改,确保切换后系统各组件(如桌面环境、命令行提示、应用程序等)均显示英文,图形界面操作(适合普通用户)图形界面切换语……

    2025年9月11日
    7800
  • Linux如何识别新加的磁盘设备?

    Linux识别新加磁盘是一个涉及硬件连接、内核驱动、设备管理及用户空间工具的完整流程,通常需要从硬件层面到系统层面逐步排查和操作,以下将详细说明Linux系统如何识别新加磁盘的全过程,包括操作步骤、常用工具及注意事项,硬件层面准备与系统检测在Linux系统识别新磁盘前,需确保硬件连接正常,对于台式机或服务器,新……

    2025年10月1日
    7700
  • 远程控制Linux有哪些实用方法?

    远程控制Linux系统是日常运维和开发中的常见需求,通过远程工具可以高效管理服务器、执行命令、传输文件等,本文将详细介绍几种主流的Linux远程控制方法,包括SSH、VNC、Web界面管理等,并涵盖安全配置和最佳实践,帮助用户选择适合的方案实现稳定、安全的远程连接,基于SSH的远程控制(命令行核心方案)SSH……

    2025年9月8日
    10100
  • linux 如何查看txt文件

    Linux 中,可以使用 cat、less、more 或 `n

    2025年8月18日
    12200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信