news 2026/9/7 18:43:40

# Linux基础Day05:命令补充,用户管理及组账号管理,密码管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
# Linux基础Day05:命令补充,用户管理及组账号管理,密码管理

声明:本文仅作学习交流使用,引用需标明出处。

如有谬误,敬请指正

一、文件查看与处理核心命令

日常运维中需频繁查看、筛选、输出文件内容,这部分命令覆盖按行查看、分页查看、内容输出、结果写入、命令联动、内容过滤六大核心能力,命令间可灵活组合,大幅提升操作效率。

1.1 按行快速查看:head & tail

适用于快速获取文件前N行/后N行内容,语法简洁,行号选项-n可直接省略,是最常用的文件查看命令。

命令格式实操示例
head(前N行,若不指定默认前10行)head [-n] 行数 [路径/]文件名head -n 2 /etc/shells(查看前2行)
head -2 /etc/shells(省略-n,效果一致)
tail(后N行,若不指定默认后10行)tail [-n] 行数 [路径/]文件名tail -n 2 /etc/shells(查看后2行)
tail -3 /etc/group(省略-n,查看后3行)

拓展实用技巧tail -f 文件名可实时监控文件内容变化,是查看系统日志、应用日志的必备命令,比如tail -f /var/log/messages可实时查看系统日志更新。

1.2 大文件分页查看:less

针对大文件设计的交互式查看命令,解决cat一次性输出所有内容的弊端,支持翻页、关键字搜索,按q退出,是查看配置文件、日志文件的核心工具。

  • 格式:less [-N] [路径/]文件名-N:添加行号标记,方便定位具体行)
  • 核心交互操作:
    • 回车:以行为单位向下翻阅;
    • 空格:以页为单位向下翻阅;
    • /关键字:搜索匹配内容;
    • n:查找下一个匹配项;
    • N:查找上一个匹配项;
    • q:退出less查看模式(核心退出指令,必记)。
  • 实操示例:
    less/etc/passwd# 分页查看/etc/passwdless-N/etc/shadow# 带行号分页查看/etc/shadow

1.3 基础内容输出:echo

用于在终端直接打印指定内容,可单独使用,也可结合重定向写入文件,支持中英文、数字等任意内容输出,是脚本编写和快速输出的基础工具。

  • 格式:echo 要输出的内容
  • 实操示例:
    echo123# 输出数字echoHelloWorld# 输出英文字符串echo服务器运维# 输出中文字符串

进阶用法:利用双引号实现多行输入,结合重定向可完成非交互式多行内容写入:

[root@localhost ~]# echo "hello>world>hi" hello world hi # 结合重定向写入文件 [root@localhost ~]# echo "line1>line2>line3">/opt/multi_line.txt

1.4 命令结果写入文件:重定向

将命令输出结果写入文件(文件不存在则自动创建),分为覆盖重定向和追加重定向两种,是实现“命令结果持久化”的核心操作:

符号作用实操示例
>覆盖写入(清空原有内容)cat /etc/shells > /opt/file1.txt
hostname > /opt/hn.txt
>>追加写入(保留原有内容)echo 123 > /opt/1.txt
echo 456 >> /opt/1.txt(最终内容:123+456)

1.5 多命令联动:管道操作

通过管道符|将前一个命令的输出作为后一个命令的输入,实现多命令协作,可无限串联,是Linux命令高效组合的核心方式。

  • 格式:命令1 | 命令2 [| 命令3 ...]
  • 实操示例:
    cat-n/etc/shells|head-2# 加行号后取前2行ls--help|less# 分页查看ls帮助信息greproot /etc/passwd|tail-1# 过滤含root的行并取最后1行

1.6 内容精准筛选:grep

Linux过滤三剑客之一,用于在文件中过滤满足条件的行,支持正则表达式,是处理配置文件、日志的核心命令,使用频率极高。

  • 格式:grep [选项] 筛选条件 [路径/]文件名
  • 核心选项与正则规则(必背):
    选项/规则作用
    -i忽略大小写
    -v取反(过滤不满足条件的行)
    ^关键字匹配以关键字开头的行
    关键字$匹配以关键字结尾的行
    ^$匹配空行
  • 实操示例:
    greproot /etc/passwd# 过滤含root的行grep"^root"/etc/passwd# 过滤以root开头的行grep"bash$"/etc/passwd# 过滤以bash结尾的行(可登录用户)grep-i"ROOT"/etc/passwd# 忽略大小写过滤rootgrep-v"root"/etc/passwd# 过滤不含root的行grep"^$"/etc/passwd# 过滤空行

二、用户账号管理:查/增/改/删全操作

Linux的多用户特性依赖用户账号实现身份识别和权限划分,所有管理命令需root权限执行,操作结果同步写入/etc/passwd,核心通过UID(用户唯一标识)区分不同用户。

前置知识:核心配置文件与用户分类

1. 本地账户核心配置文件
文件路径作用访问权限
/etc/passwd用户基础信息文件(执行用户管理命令时会被系统修改)所有用户可查看
/etc/shadow用户加密密码文件仅root可查看
/etc/group组账号信息文件所有用户可查看
/etc/gshadow组账号密码文件仅root可查看
2. 用户分类与UID规则

Linux用户按权限分为三类,以UID(用户唯一标识,0~60000)区分,UID不可重复:

用户类型UID范围核心特征
超级管理员0root用户,拥有最高权限
系统用户1-999运行系统服务,无法登录
普通用户1000~60000手动创建,供真人使用,权限受限

注:组的唯一标识为GID,UID与GID通常保持一致,但非强制要求;创建普通用户时,系统会自动创建同名基本组(私有组),用户可额外加入多个附加组(从数组)。

2.1 查:查看用户信息(2种方式)

方式命令优势实操示例
直接查询(推荐)id 用户名输出简洁,含UID/GID/所属组id tomuid=1000(tom) gid=1000(tom) 组=1000(tom)
间接查询grep 用户名 /etc/passwd查看完整基础信息grep jerry /etc/passwdjerry:x:1001:1001::/home/jerry:/bin/bash(字段:用户名:密码占位符:UID:GID:描述信息:家目录:解释器)

2.2 增:创建用户 - useradd

创建新普通用户,系统会自动创建同名基本组,用户信息写入/etc/passwd

  • 格式:useradd [选项] 新用户名
  • 核心选项(自定义用户属性):
    选项作用注意事项
    -u指定UIDUID需未被使用
    -G指定附加组附加组需已存在
    -s指定登录解释器/sbin/nologin表示禁止登录
    -d指定家目录默认/home/用户名
  • 实操示例:
    useraddjerry# 默认创建useradd-d/opt/lucy lucy# 指定家目录useradd-s/sbin/nologin tina# 禁止登录useradd-Groot sam# 指定附加组useradd-u1100eve# 指定UID

关键踩坑点
正常情况下,useradd -d /路径 用户名能自动创建家目录,是因为/etc/login.defs中默认配置CREATE_HOME=yes,但该设置仅对useradd生效;usermod -d若不加-m,不会自动创建新家目录。

2.3 改:修改用户信息 - usermod

修改已存在用户的属性,核心选项与useradd一致,需注意“覆盖式修改”的特性。

  • 格式:usermod <选项> 已有用户名
  • 核心选项说明:
    • -G:修改用户附加组(覆盖原有附加组,多组用逗号分隔,如-G 组1,组2,组3);
    • -s:修改用户解释器(如将/sbin/nologin改为/bin/bash实现登录);
    • -d:修改用户家目录(仅修改/etc/passwd配置,不自动创建目录);
    • -m:强制创建新家目录,自动复制/etc/skel下的默认配置(如.bashrc)到该目录。
  • 核心注意事项:
    1. -d仅修改配置路径,不自动创建新目录;
    2. -G为覆盖式修改,新增附加组需注意保留原有组;
    3. -d -m组合可改家目录+自动创建并迁移文件(高频用法)。
  • 实操示例:
    groupaddmygroup# 先创建测试组usermod-Gmygroup tom# 修改附加组(覆盖原有)usermod-s/bin/bash tina# 允许登录usermod-d/opt/jerry jerry# 仅改家目录配置usermod-d/opt/jerry-mjerry# 改家目录+自动创建并迁移文件

2.4 删:删除用户 - userdel

删除已存在用户,默认仅删账号信息,需加-r彻底删除(含家目录/信箱),避免残留文件导致权限问题。

  • 格式:userdel [选项] 已有用户名
  • 核心选项:-r(递归删除,彻底清理用户相关文件)
  • 实操示例:
    userdel-rtina# 彻底删除tinaidtina# 验证:无此用户greptina /etc/passwd# 验证:无输出

高频踩坑点:UID分配规则

场景系统默认行为解决方案
删除tom(UID1000)→ 新建aomaom的UID为1001(向后找下一个未用值)无需处理,默认规则即可
删除tom(UID1000)→ 新建tom新tom的UID为1001手动指定:useradd -u 1000 tom

注意:仅userdel tom会残留家目录/信箱(归属UID1000),新tom(UID1001)会出现权限不匹配,建议先userdel -r tom再重新创建。

三、组账号管理:增/删/成员管理

组账号用于批量管理用户权限,唯一标识为GID(不可重复),组信息写入/etc/group,组账号仅用于权限归类,不具备登录系统的能力。

前置知识:组的核心规则

  1. 每个用户仅1个基本组,可拥有多个附加组;
  2. 普通组GID从1000开始,系统组GID为1-999;
  3. 创建用户自动生成同名基本组,创建组不会生成用户。

3.1 组本身管理:groupadd & groupdel

操作命令核心限制实操示例
创建组groupadd 新组名无(GID自动分配)groupadd mygroup
删除组groupdel 已有组名不可删除用户的基本组groupdel mygroup

关键注意事项

  1. 用户未删除时,直接删除其基本组会失败;
  2. 若A用户的基本组是B用户的附加组,删除A用户后,A组(基本组)仍会保留,需手动删除。

3.2 组成员管理:gpasswd

添加/移除组成员,操作后该组成为用户的附加组,是批量管理用户权限的核心命令。

  • 格式:gpasswd [选项] 用户名 组名
  • 核心选项:
    选项作用英文释义
    -a添加用户到组add
    -d从组中移除用户delete
  • 实操示例:
    groupaddmygroup# 准备测试组gpasswd-atom mygroup# 添加tom到组grepmygroup /etc/group# 验证:mygroup:x:1001:tomgpasswd-dtom mygroup# 移除tomgrepmygroup /etc/group# 验证:mygroup:x:1001:

四、用户密码管理:修改+切换

用户密码以加密格式存储在/etc/shadow(仅root可查看),包含交互式修改、非交互式修改、用户切换三大核心操作,是用户登录系统的关键凭证。

前置知识:/etc/shadow字段解析

/etc/shadow每行对应一个用户的密码信息,共9个字段,以:分隔,示例:

tom:$6$xxxx:19500:0:99999:7:::

9个字段含义

  1. 用户名:与/etc/passwd对应;
  2. 加密密码:SHA-512加密后的字符串,*/!!表示无密码、无法登录;
  3. 最后一次改密日期:从1970-01-01到改密当天的总天数;
  4. 密码最小使用天数:0表示随时可改;
  5. 密码最大使用天数:99999表示永久有效;
  6. 密码过期前警告天数:提前提醒用户改密;
  7. 密码过期后宽限天数:过期后仍可登录改密的时间;
  8. 账号失效日期:1970年算起的天数,到期彻底失效;
  9. 保留字段:暂未使用。

4.1 交互式修改密码:passwd(推荐)

原生安全方式,输入密码时终端无明文显示,root和普通用户权限不同:

用户身份命令规则
root管理员passwd 用户名可为任意用户改密码,无复杂度限制
普通用户passwd仅可改自身密码,需满足系统密码策略
  • 实操示例(root视角):
    useraddmike# 创建用户passwdmike# 设置密码(输入时无显示)

注:passwd直接回车,默认修改当前登录用户的密码。

4.2 非交互式修改密码:echo + passwd --stdin

适用于脚本批量操作,密码明文显示,仅root用户可使用,测试环境常用。

  • 格式:echo 密码 | passwd --stdin 用户名
  • 实操示例:
    echo123456|passwd--stdinmike# 无交互设置密码

安全提醒:该方式密码明文暴露在命令行,生产环境建议结合加密方式使用。

4.3 用户切换:su - 用户名

临时切换用户身份,-必须添加(同步加载目标用户的环境变量、家目录、PATH等,等同于正常登录)。

  • 权限规则:
    1. root → 普通用户:免密切换;
    2. 普通用户 → 其他用户(含root):需输入目标用户密码。
  • 终端提示符标识:
    • root用户:#;普通用户:$(快速判断当前身份)。
  • 实操示例:
    su- mike# root切普通用户(免密)[mike@localhost ~]$passwd# 普通用户改自身密码[mike@localhost ~]$exit# 退出返回root

五、核心知识点总结(必背)

5.1 文件操作

  1. 快速看行用head/tailtail -f实时监控日志),大文件分页用less/搜索、q退出);
  2. 输出用echo(支持多行输入),写入用>(覆盖)/>>(追加),多命令联动用|管道;
  3. 过滤用grep(必背:-i/-v^/$/^$正则规则)。

5.2 用户/组管理

  1. 用户:id查看、useradd创建(-u/-G/-s/-d自定义)、usermod修改(-d -m创建新家目录)、userdel -r彻底删除;
  2. 组:groupadd创建、groupdel删除(不可删基本组)、gpasswd -a/-d管理成员;
  3. 关键规则:UID默认向后分配,复用需手动指定;CREATE_HOME=yes仅对useradd生效。

5.3 密码与切换

  1. 改密码:passwd(交互式,推荐)、echo + passwd --stdin(非交互式,测试用);
  2. 切换用户:su - 用户名(必加-,root切普通用户免密);
  3. 核心文件:/etc/passwd(用户)、/etc/group(组)、/etc/shadow(密码)。

总结

  1. 本文整合了Linux文件操作、用户/组/密码管理的全量核心知识点,补充了实操拓展技巧和高频踩坑点,适配新手学习逻辑;
  2. 核心命令需结合实操巩固,重点掌握grep正则过滤、usermod家目录修改、gpasswd组成员管理等易混淆操作;
  3. 权限管理是Linux核心,理解UID/GID规则、基本组/附加组区别,是后续云计算运维、权限配置的基础。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 18:41:52

退租时押金扣多少总扯不清,如何导出微信聊天记录来核对

摘要 租房最和平分手的时候少&#xff0c;退租时闹得不愉快的多&#xff1a;墙面有钉眼算不算正常损耗、家电坏了是谁的责任、水电燃气物业费结到哪天、押金到底该扣多少&#xff0c;往往各执一词。而这些约定&#xff0c;当初全在微信里说过——入住时的房屋状况发过照片&…

作者头像 李华
网站建设 2026/9/7 18:40:41

工厂物理学:制造系统的常见法则与性能边界解析

制造系统的运行&#xff0c;说到底是在跟一组看不见的物理规律打交道。我在车间里待的时间越长&#xff0c;越觉得“工厂物理学”这套框架被国内制造业低估了——它不像精益生产那样有现成的工具表单可以拿来就用&#xff0c;也不像六西格玛那样有密集的统计术语&#xff0c;但…

作者头像 李华
网站建设 2026/9/7 18:39:35

3步并行开发:Prime Agent Subagent 子智能体实战指南

3步并行开发&#xff1a;Prime Agent Subagent 子智能体实战指南 【免费下载链接】prime-agent A self-improving RLM agent for coding workflows and long-running autonomous tasks. 项目地址: https://gitcode.com/GitHub_Trending/pr/prime-agent 认证模块要改、测…

作者头像 李华
网站建设 2026/9/7 18:37:47

Modbus、MQTT、Profinet协议安全剖析与嵌入式轻量防护实战

做嵌入式开发这些年&#xff0c;有个问题我一直觉得值得反复聊&#xff1a;工控设备的联网安全。尤其是工业现场越来越喜欢上云、上平台之后&#xff0c;Modbus、MQTT、Profinet 这三类协议几乎成了标配&#xff0c;但说实话&#xff0c;大部分工程师对它们的认识还停留在"…

作者头像 李华
网站建设 2026/9/7 18:37:42

爬虫逆向实战笔记:从JS加密到风控对抗的完整指南

先说明一下&#xff0c;这篇是长期维护的笔记&#xff0c;不是一次性教程。爬虫逆向这个方向&#xff0c;知识点碎且更新快&#xff0c;今天能用的方案过两周可能就失效了&#xff0c;所以我把自己的学习记录和踩坑过程整理成文&#xff0c;持续补充。内容以 JS 逆向、风控对抗…

作者头像 李华