一文吃透 Linux 用户与组管理,权限管控、密码策略全掌握
在 Linux 系统运维中用户与组的管理是核心基础技能之一直接关系到系统的安全性与资源访问权限的管控。本文将从本地用户管理、本地组管理、密码策略配置三个维度结合实操案例与课后作业全面讲解 Linux 用户与组管理的核心操作与进阶技巧助力大家快速掌握系统权限管控精髓。文章目录一、本地用户管理基础操作与课后实战1.综合案例operator1 用户全流程管理实操2.进阶实战手动创建用户 zhangsan深入底层原理步骤1添加用户基础信息/etc/passwd步骤2创建用户专属组/etc/group步骤3配置用户密码/etc/shadow步骤4配置用户家目录/home/zhangsan常见故障排查与解决二、本地组管理组的创建、修改与成员管控1.groupadd创建新组2.groupmod修改组属性3.groupdel删除组4.groupmems管理组成员5.练习组管理实操三、用户密码管理策略配置与安全管控1. /etc/shadow 文件解析2.chage精细化配置密码策略3.usermod用户密码与登录权限管控4.passwd快速管理用户密码5.进阶技巧创建 UID 为 0 的特权用户四、拓展Linux 登录 Shell 管理五、总结一、本地用户管理基础操作与课后实战Linux 系统中用户信息主要存储在/etc/passwd用户基础信息、/etc/shadow密码加密信息两个核心配置文件中掌握用户的创建、修改、验证与删除是运维入门的必备技能。1.综合案例operator1 用户全流程管理实操以下为完整实操命令涵盖用户创建、信息验证、属性修改、组关联及删除全流程可直接复制执行需 root 权限# 1. 创建 operator1 用户useraddoperator1# 2. 使用 id 命令验证用户基础信息UID、GID、所属组等idoperator1# 3. 查看 /etc/passwd 中 operator1 对应的条目验证用户基础配置grepoperator1 /etc/passwd# 4. 为 operator1 设置密码为 redhat--stdin 实现非交互式密码设置echoredhat|passwd--stdinoperator1# 5. 修改 operator1 用户的 UID 为 1088需确保 UID 未被占用usermod-u1088operator1# 6. 修改 operator1 用户的描述信息为Operator One完善用户备注usermod-cOperator Oneoperator1# 7. 将 wheel 组管理员特权组作为补充组添加给 operator1usermod-aGwheel operator1# 8. 查看 /etc/group 中 wheel 组条目验证用户是否成功加入grepwheel /etc/group# 9. 删除 operator1 用户-r 参数连带删除家目录及相关文件userdel-roperator12.进阶实战手动创建用户 zhangsan深入底层原理通过手动修改配置文件创建用户能更清晰理解 Linux 用户管理的底层逻辑核心涉及4个关键步骤缺一不可步骤1添加用户基础信息/etc/passwd编辑/etc/passwd文件在末尾添加用户条目注意 UID 需在系统现有基础上递增避免冲突vim/etc/passwd# 末尾添加如下内容格式用户名:密码占位符:UID:GID:描述:家目录:登录Shellzhangsan:x:1002:1002::/home/zhangsan:/bin/bash步骤2创建用户专属组/etc/groupLinux 默认创建用户时会同步创建同名组手动创建需在/etc/group中添加对应组条目vim/etc/group# 末尾添加如下内容格式组名:密码占位符:GID:组成员zhangsan:x:1002:步骤3配置用户密码/etc/shadow/etc/shadow存储用户加密密码及密码策略手动添加需确保密码加密格式正确可复制现有用户加密串修改vim/etc/shadow# 末尾添加如下内容格式用户名:加密密码:最后修改时间:最小有效期:最大有效期:警告期:非活跃期:过期时间:保留字段zhangsan:$6$FgUNKn74yoEDbcXD$pxDk9AEhsxkJGYi76Rv91zLy5LRns8olgAyGuNssQYG07ypaidhuX0gHAU4hrNi9Zp9A7vtMEvbyzCQ0e/gbk1::0:99999:7:::步骤4配置用户家目录/home/zhangsan用户家目录是用户登录后的默认工作目录需从/etc/skel模板目录复制基础配置并修改权限# 复制模板目录到用户家目录cp-r/etc/skel/ /home/zhangsan# 修改家目录所属用户和组为 zhangsanchownzhangsan:zhangsan /home/zhangsan# 验证家目录权限ll-d/home/zhangsan常见故障排查与解决手动创建用户或日常运维中常遇到家目录缺失、权限不足等问题以下为两种典型故障及解决方法故障1家目录缺失现象登录时提示Could not chdir to home directory /home/zhangsan: No such file or directory解决重新复制模板目录并修改权限执行命令cp -r /etc/skel/ /home/zhangsan chown -R zhangsan:zhangsan /home/zhangsan故障2家目录权限不足现象登录时提示Could not chdir to home directory /home/zhangsan: Permission denied解决修改家目录权限赋予用户读写执行权限执行命令chown -R zhangsan:zhangsan /home/zhangsan chmod urwx /home/zhangsan二、本地组管理组的创建、修改与成员管控Linux 中组用于批量管理用户权限通过组权限可快速实现多个用户的资源访问管控核心涉及groupadd、groupmod、groupdel、groupmems四个命令。1.groupadd创建新组用于创建新的用户组可指定组名、GID默认 GID 会在系统现有基础上递增# 创建名称为 admin 的普通组groupaddadmin# 创建名称为 sysadmin 的组指定 GID 为 2000需确保 GID 未被占用groupaddsysadmin-g2000# 验证组是否创建成功grepadmin /etc/group2.groupmod修改组属性用于修改已存在组的名称、GID 等属性修改后需验证配置文件确保生效# 修改组名称将 admin 组重命名为 adminsgroupmod--new-name admins admin# 修改组 GID将 admins 组的 GID 修改为 2002groupmod-g2002admins# 验证修改结果grepadmins/etc/group3.groupdel删除组用于删除不再使用的组注意若组为某用户的主组需先修改用户主组再删除该组# 删除 sysadmin 组groupdelsysadmin# 验证组是否删除成功grepsysadmin /etc/group4.groupmems管理组成员用于批量添加、删除、列出组成员仅 root 用户可操作其他组普通用户仅可管理自身所属组# 查看命令帮助groupmems--help# 1. 添加成员将 csh 用户添加到 admins 组groupmems-gadmins-acsh# 2. 列出组成员查看 admins 组的所有成员groupmems-gadmins-l# 3. 删除成员将 csh 用户从 admins 组中删除groupmems-gadmins-dcsh# 4. 清空成员清空 admins 组的所有成员groupmems-gadmins-p5.练习组管理实操结合上述命令完成以下组管理实操巩固核心技能# 1. 创建 developer 组指定 GID 为 2000groupadddeveloper-g2000# 2. 修改 developer 组名称为 developersGID 修改为 3000groupmod--new-name developers-g3000developer# 3. 创建 developer1 用户并将其添加到 developers 组作为补充组useradddeveloper1groupmems-gdevelopers-adeveloper1# 4. 将 developer1 用户从 developers 组中删除groupmems-gdevelopers-ddeveloper1# 5. 删除 developers 组groupdeldevelopers三、用户密码管理策略配置与安全管控用户密码是系统安全的第一道防线Linux 通过/etc/shadow文件存储密码信息及策略通过chage、usermod、passwd等命令可实现密码策略的精细化管控。1. /etc/shadow 文件解析/etc/shadow文件每行对应一个用户的密码信息以冒号分隔9个字段核心字段含义如下以用户 csh 为例# 查看用户密码信息grepcsh /etc/shadow# 示例输出csh:$6$m0OgWyIu$P2TF1pB8MO...J3LopEUdhmp/Ir/:19300:0:99999:7:::各字段含义从左到右登录名用户登录系统的用户名与/etc/passwd中用户名一致加密密码采用 SHA-512 算法加密的密码串若为空表示无密码若为!表示密码被锁定最后密码修改时间距离1970年1月1日的天数设置为0表示强制用户下次登录时修改密码最小密码生命周期用户两次修改密码的最小间隔天数设置为0表示可随时修改最大密码生命周期密码的有效天数到期后需修改密码密码警告期密码过期前系统提前警告用户的天数密码非活跃期密码过期后用户仍可登录的宽限天数到期后账户锁定账户过期时间账户的有效截止日期以距离1970年1月1日的天数表示到期后账户无法登录保留字段预留字段暂未使用。2.chage精细化配置密码策略chage命令用于查看、修改用户密码策略是实现密码安全管控的核心命令常用参数及实操如下# 1. 查看用户密码策略详情chage-lcsh# 2. 修改密码最大有效期设置 csh 用户密码100天后过期chage-M100csh# 3. 修改密码最小有效期设置 csh 用户密码3天内不允许修改chage-m3csh# 4. 强制用户下次登录修改密码设置最后密码修改时间为0chage-d0csh# 5. 锁定用户账户设置账户过期时间为过去日期如1970-01-01chage-E1970-01-01 csh3.usermod用户密码与登录权限管控usermod命令可实现密码批量复制、登录 Shell 限定、密码锁定/解锁等操作适用于批量运维场景# 1. 批量复制密码将 laowang 用户的密码设置为与 laoma 一致无需交互# 先查看 laoma 的加密密码串grepcsh /etc/shadow# 复制加密串替换到以下命令中usermod-p$6$m0OgWyIu$P2TF1pB8MO...J3LopEUdhmp/Ir/laowang# 2. 删除用户密码清空 laowang 用户密码登录时无需输入密码usermod-plaowang# 3. 限定用户登录 Shell将 laowang 用户的登录 Shell 修改为 /sbin/nologin禁止登录usermod-s/sbin/nologin laowang# 4. 恢复用户登录 Shell将 laowang 用户的登录 Shell 改回 /bin/bashusermod-s/bin/bash laowang# 5. 锁定用户密码锁定 laowang 用户密码禁止登录等效于 passwd -lusermod-Llaowang# 6. 解锁用户密码解锁 laowang 用户密码恢复登录等效于 passwd -uusermod-Ulaowang# 7. 设置账户过期时间设置 laowang 用户账户2024年7月18日过期usermod-e2024-07-18 laowang4.passwd快速管理用户密码passwd命令是管理用户密码的基础命令适用于单用户密码设置、删除、锁定等场景# 1. 非交互式设置密码为 laowang 设置密码为 redhatechoredhat|passwd--stdinlaowang# 2. 删除用户密码清空 laowang 用户密码等效于 usermod -p passwd-dlaowang# 3. 锁定用户密码锁定 laowang 用户密码等效于 usermod -Lpasswd-llaowang# 4. 解锁用户密码解锁 laowang 用户密码等效于 usermod -Upasswd-ulaowang5.进阶技巧创建 UID 为 0 的特权用户Linux 中 UID 为 0 的用户拥有 root 管理员权限可通过以下两种方式创建特权用户谨慎操作避免安全风险# 方法一手动修改 /etc/passwd 文件将用户 UID 改为 0vim/etc/passwd# 将 csh 用户的 UID 改为 0格式如下csh:x:0:1000:csh:/home/csh:/bin/bash# 方法二使用 useradd 命令-o 表示允许 UID 重复-u 指定 UID 为 0useradd-o-u0csh# 验证用户权限idcsh四、拓展Linux 登录 Shell 管理登录 Shell 是用户登录系统后默认的交互环境Linux 支持多种 Shell可根据需求安装、切换核心操作如下# 1. 查看系统中已安装的 Shell 清单cat/etc/shells# 2. 查看默认 Shell 关联关系/bin/sh 软链接到 bashll /bin/sh /usr/bin/sh# 3. 安装额外 Shell如 tmux、cshyuminstall-ytmux tcsh# 4. 验证安装结果ll /bin/csh /usr/bin/csh补充tmux 是一款终端复用工具登录后可通过快捷键Ctrlb实现会话管理常用快捷键c新建会话、数字键切换对应编号会话。五、总结Linux 用户与组管理的核心是围绕/etc/passwd、/etc/group、/etc/shadow三个配置文件通过各类命令实现用户、组的创建、修改、删除及权限管控。掌握基础操作是前提理解底层配置文件的逻辑是关键而精细化的密码策略与权限管控是保障系统安全的核心。希望本文的实操案例与技巧能帮助大家快速提升 Linux 运维技能从容应对各类权限管控场景。如果大家在实操过程中有疑问欢迎在评论区留言交流一起探讨 Linux 运维的进阶技巧

相关新闻

Unity UGUI拖拽交互全解析:从OnDrag/OnDrop原理到模块化实战

Unity UGUI拖拽交互全解析:从OnDrag/OnDrop原理到模块化实战

1. 项目概述:为什么Unity拖拽交互是UI/UX的基石在Unity开发中,尤其是制作工具、游戏UI或者任何需要用户直接操作的界面时,拖拽交互几乎是一个绕不开的核心功能。想象一下,你正在制作一个背包系统,玩家需要将药水拖到快…

2026/7/19 4:25:34阅读更多 →
深入解析AM62L xHCI寄存器:从硬件原理到驱动开发实战

深入解析AM62L xHCI寄存器:从硬件原理到驱动开发实战

1. 项目概述:为什么需要深入理解xHCI寄存器在嵌入式系统开发,尤其是涉及USB主机功能的设计中,我们常常会遇到一个看似枯燥但至关重要的环节:寄存器配置。你可能已经熟练地使用Linux内核的xhci-hcd驱动,或者基于某个RTO…

2026/7/19 4:25:34阅读更多 →
基于RK3399的嵌入式视频监控系统开发实践

基于RK3399的嵌入式视频监控系统开发实践

1. 项目背景与系统架构设计在物联网和边缘计算快速发展的今天,嵌入式视频监控系统正从传统的模拟信号时代向数字化、智能化方向演进。RK3399作为一款高性能的ARM处理器,凭借其双核Cortex-A72四核Cortex-A53的六核架构和Mali-T860MP4 GPU,为嵌…

2026/7/19 4:25:34阅读更多 →
Unity手游逆向实战:Frida动态Hook与libil2cpp.so内存修改

Unity手游逆向实战:Frida动态Hook与libil2cpp.so内存修改

1. 项目概述:一次从底层到应用的完整逆向之旅最近在分析一款Unity引擎开发的手游时,遇到了一个典型的需求:绕过某个核心数值的校验,或者修改角色的属性。对于Unity手游,尤其是使用IL2CPP后端编译的,其核心逻…

2026/7/19 7:49:56阅读更多 →
C++ WebSocket高并发服务与Linux文件系统底层管理实战

C++ WebSocket高并发服务与Linux文件系统底层管理实战

1. 项目概述与核心价值最近在做一个需要同时处理高并发网络连接和底层文件操作的项目,场景是服务器需要实时推送大量日志文件更新给前端,同时又要高效地管理这些被打开的文件句柄。这让我不得不把两个看似不相关的领域——C高性能WebSocket服务和Linux文…

2026/7/19 7:49:56阅读更多 →
FreeRTOS嵌入式开发实战:从环境搭建到任务优化

FreeRTOS嵌入式开发实战:从环境搭建到任务优化

1. FreeRTOS基础认知与开发环境搭建FreeRTOS作为当前市场占有率最高的嵌入式实时操作系统(RTOS),其核心优势在于极小的内存占用(通常仅6-10KB ROM和1KB RAM)和高度可裁剪性。我首次接触FreeRTOS是在2015年一个工业控制…

2026/7/19 7:49:56阅读更多 →
十六进制字面量0x123456789abcdef的合法性与应用解析

十六进制字面量0x123456789abcdef的合法性与应用解析

请于水化中对上述0x123456789abcdefABC的十六进制表示是什么? 0x123456789abcdef 是一个十六进制0x123456789abcdef 的十六进制表示是一个十六进制数,其中前缀0x表示这是一个十六进制(hexadecimal)数值。我们来逐步分析这个值&…

2026/7/19 7:49:56阅读更多 →
Django认证系统全解析:从基础到高级实践

Django认证系统全解析:从基础到高级实践

1. Django认证系统基础架构Django内置的认证系统提供了一套完整的用户认证和授权解决方案。这个系统由几个核心组件构成:用户模型(User Model):存储用户凭证和核心信息认证后端(Authentication Backends)&a…

2026/7/19 7:49:56阅读更多 →
AM62L UART寄存器级驱动开发:从FIFO配置到中断优化实战

AM62L UART寄存器级驱动开发:从FIFO配置到中断优化实战

1. 项目概述与核心价值如果你正在基于TI的AM62L Sitara™处理器开发嵌入式系统,并且需要与传感器、无线模块、调试终端或其他微控制器进行串口通信,那么深入理解其UART(通用异步收发传输器)模块的寄存器级操作,将是摆脱…

2026/7/19 7:47:56阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:01:04阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:01:04阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:01:04阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:01:04阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:01:04阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:01:04阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/18 22:49:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/18 14:49:24阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/18 18:49:35阅读更多 →