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

相关推荐

  • 当前Shell是什么?查看方法

    在Linux系统中,Shell是用户与操作系统内核交互的桥梁,它负责解释和执行用户输入的命令,不同的Shell(如Bash、Zsh、Fish)在功能、自动补全、脚本兼容性等方面存在差异,用户可能需要更换Shell以获得更高效的工作流(如Zsh的插件生态)或兼容特定脚本,以下是详细操作指南:查看当前Shell终端……

    2025年7月31日
    1900
  • Linux下如何开启Apache服务?

    在Linux系统中开启Apache服务是搭建Web服务的基础步骤,Apache作为开源的HTTP服务器,广泛应用于网站托管和Web应用部署,不同Linux发行版的安装和配置命令略有差异,本文将以主流的Ubuntu/Debian和CentOS/RHEL系列为例,详细说明Apache服务的完整开启流程,涵盖安装、配……

    2025年8月23日
    1500
  • Linux下怎样让鼠标光标消失?

    方法1:使用命令行工具 unclutter(推荐)原理:unclutter 是一个轻量级后台工具,当鼠标静止时自动隐藏光标,移动时恢复显示,步骤:安装工具(支持Debian/Ubuntu、Fedora等主流发行版):sudo apt install unclutter # Debian/Ubuntusudo d……

    2025年7月28日
    1100
  • 如何导出单个系统日志?

    在Linux系统中,日志文件记录了系统运行的关键信息,导出日志是故障排查、安全审计或数据备份的常见需求,以下是几种专业且高效的日志导出方法,操作前请确保您拥有sudo权限或相关文件的读取权限,基础文件复制命令使用 cp 直接复制# 导出整个日志目录sudo cp -r /var/log /home/user/l……

    2025年7月15日
    3500
  • linux中如何开ftp服务

    Linux中开启FTP服务,可安装vsftpd软件包并配置其服务脚本,然后

    2025年8月15日
    1400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信