Linux用户管理与文件权限深度解析 📅 发布时间:2026/7/11 2:23:29 👁️ 浏览次数: Linux 用户管理与文件权限深度解析在 Linux 系统中用户和组管理与文件权限控制是系统管理的两大基石。无论你是刚入门的运维新人还是准备 RHCSA 认证的考生理解这两块内容都能让你在 Linux 世界中游刃有余。本文将为你系统性地梳理账户管理、工作组机制、文件权限体系以及高级权限控制等内容。一、账户与工作组分类1.1 用户的三类角色Linux 是一个真正意义上的多用户、多任务操作系统它将用户划分为三个层次用户类型说明特点超级用户root系统最高权限拥有者拥有一切权限建议仅在必要时使用系统用户系统进程所需的账户如 bin、daemon、sshd 等不能登录系统普通用户日常使用系统的账户权限受限只能操作自己有权访问的资源1.2 工作组的两种类型类型说明基本组私有组新建用户时若未指定所属组系统会自动创建与用户名同名的组扩展组公有组可容纳多个用户组内成员共享该组所拥有的权限二、核心配置文件详解用户和组的信息存储在四个关键文件中文件功能权限说明/etc/passwd用户账号信息所有用户可读/etc/shadow用户密码密文仅 root 可读/etc/group工作组信息所有用户可读/etc/gshadow工作组密码仅 root 可读2.1/etc/passwd— 用户账号文件每一行代表一个用户共 7 个字段用:分隔root:x:0:0:root:/root:/bin/bash字段含义依次为用户名:密码占位符:UID:GID:注释信息:家目录:登录ShellUID 规则root 为 0系统用户为 1~999普通用户从 1000 开始连续编号。2.2/etc/shadow— 影子密码文件存储加密后的密码权限为----------仅有 root 可读写root:$6$u6dOBCaz...Ndv/::0:99999:7:::9 个字段依次为登录名:加密口令:最后修改时间:最小间隔:最大间隔:警告时间:不活动时间:失效时间:标志2.3/etc/group— 工作组文件root:x:0:字段含义组名:组密码:GID:组成员列表三、用户管理实战3.1 创建用户# 基本创建useraddzzz# 指定 UID、Shell、过期时间useradd-u2001-s/bin/bash-e-1sss# 禁止登录、不创建家目录常用于 FTP 等服务账户useradd-M-s/sbin/nologin zzz_srv# 指定家目录、基本组useraddsss_dev-u3001-gzzz-d/test创建用户后系统会自动完成以下操作在/etc/passwd、/etc/shadow、/etc/group中添加记录创建家目录默认/home/用户名复制/etc/skel/下的模板文件到新家目录3.2 修改用户信息# 修改用户名并锁定账户usermodzzz-lZZZ-L# 修改家目录usermodsss-d/home/sss3.3 设置与修改密码# 交互式设置passwdzzz# 非交互式设置脚本中常用echo123456|passwd--stdinsss# 锁定/解锁账户passwd-lzzz# 锁定passwd-uzzz# 解锁3.4 删除用户# -r 参数会一并删除家目录和邮件池userdel-rzzz3.5 用户切换suzzz# 切换用户但不加载目标用户的环境变量su- zzz# 切换用户同时加载完整的环境变量关键区别su -会重新加载目标用户的.bash_profile、.bashrc等配置文件相当于重新登录而su仅切换身份保留当前的环境变量。四、工作组管理4.1 创建与修改工作组# 创建工作组groupaddgroup1# 指定 GID 创建groupaddgroup2-g2000# 修改组名和 GIDgroupmod-g3000-ngroup11 group14.2 组成员管理# 添加成员到组gpasswd-azzz group2# 批量添加gpasswd-Mzzz,sss ZZgroup# 指派组管理员gpasswd-Azzz group2# 从组中移除成员gpasswd-dzzz group24.3 修改文件所属组五、sudo 提权机制5.1 什么是 sudosudoSuper User DO允许普通用户以超级用户或其他用户的身份执行命令而无需知道 root 密码。它通过/etc/sudoers文件进行精细的权限控制。5.2 sudo 执行流程用户执行sudo 命令系统要求输入用户自己的密码root 执行 sudo 时无需密码验证成功后系统检查/etc/sudoers中该用户是否有执行权限若授权通过则以指定身份执行命令5.3 配置 sudoers使用visudo或vim /etc/sudoers编辑rootALL(ALL)ALL# 用户名 主机名(可切换的身份) 可执行的命令为普通用户授权zzzALL(ALL)ALL配置完成后zzz 用户就可以使用 sudo 执行管理员命令了5.4 ⭐ 深入理解 sudo 的提权机制重点sudo 只能对命令的子 shell提权很多初学者会误以为sudo像su一样切换了用户身份然后后续所有命令都以 root 身份执行。这是一个常见的误解实际上sudo的工作机制是sudo仅为紧随其后的那条命令创建一个子进程子 shell在这个子进程中以 root 身份执行该命令。命令执行完毕后子进程退出当前 shell 依然是普通用户身份。这就引出了一个经典问题为什么sudo cd /root会失败sudo cd /root失败的原因分析[zzzserver ~]$sudocd/root[sudo]zzz 的密码 sudo: cd: 未找到命令# 或者命令执行后没有任何效果失败原因有两点原因一cd是 Shell 内置命令不是外部程序sudo只能执行外部程序即有独立二进制文件的命令而cd是 shell 自身实现的内置命令built-in它不存在/bin/cd这样的可执行文件。sudo无法找到一个叫cd的外部程序来以 root 身份执行。原因二即使能执行也只影响子 shell 的工作目录退一步说即便cd有外部可执行文件sudo cd /root的执行效果是sudo创建一个子进程子进程的目录切换到了/root子进程立即退出目录变更随之消失当前父 shell 的目录完全没有改变一句话总结sudo只为命令开了一个特权小窗口子进程窗口关闭后特权就消失了。像cd这种改变 shell 状态的命令在子窗口中执行毫无意义。sudo 提权的工作原理图┌─────────────────────────────────────────────────────────┐ │ 当前 Shellzzz │ │ ┌──────────────────────────────────────────────────┐ │ │ │ $ whoami → zzz │ │ │ │ $ sudo whoami → root 子进程提权 │ │ │ │ $ whoami → zzz 子进程已退出 │ │ │ │ $ sudo cd /root → ❌ cd无外部程序 / 子shell │ │ │ │ 退出后目录恢复原样 │ │ │ └──────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘5.5 ⭐ 获取真正的提权子 shellsudo -i / sudo -s理解了上述原理后我们就知道如果需要连续执行多条管理命令每次敲sudo前缀效率很低。正确的做法是获取一个持续的提权子 shell。# 方法一获取 root 登录 shell推荐sudo-i# 方法二用 root 身份运行当前 shellsudo-s# 在提权子 shell 中连续执行多条命令[zzzserver ~]$sudo-i[rootserver ~]# useradd newuser[rootserver ~]# passwd newuser[rootserver ~]# groupadd newgroup[rootserver ~]# ls /root[rootserver ~]# exit # 退出子 shell回到普通用户[zzzserver ~]$# 又变回普通用户了sudo -ivssudo -ssudo -i模拟登录会加载 root 的完整环境变量相当于sudo su -推荐使用sudo -s仅切换身份保留当前 shell 环境相当于sudo su使用sudo -i后当前 shell 会成为一个持久的提权子 shell所有命令都直接以 root 身份执行不再需要重复输入sudo直到你输入exit退出。六、文件权限体系6.1 查看文件权限使用ll或ls -l命令查看文件的详细信息输出示例-rwxr-xr-x. 1 root root 143368 Apr 27 2020 /usr/bin/ls从左侧起第一个字符表示文件类型后面 9 个字符分为三组表示三类用户的权限位置含义第1位文件类型-普通文件、d目录、l软链接等第2-4位所有者owner/u权限第5-7位所属组group/g权限第8-10位其他人other/o权限6.2 权限的字符与数字表示权限字符二进制数字无权限---0000仅执行--x0011仅写入-w-0102写入执行-wx0113仅读取r--1004读取执行r-x1015读取写入rw-1106全部权限rwx11176.3 文件与目录的权限含义对比权限对文件的影响对目录的影响r读可读取文件内容可列出目录内容文件名w写可修改文件内容可创建/删除目录中的文件需与x配合x执行可作为脚本/程序执行可进入目录如cd⚠️注意文件权限通常出现---、r--、r-x、rw-、rwx目录权限通常出现---、r-x、rwx。目录的 w 权限必须配合 x 权限才能生效才能创建或删除文件。七、 父目录权限 vs 文件自身权限核心解析这是一个非常容易混淆但又极为重要的知识点问题对于目录下的文件用户的访问到底受父目录权限限制还是受文件自身权限限制答案是两者都限制但作用不同。7.1 访问文件内容时当用户要读取或写入一个文件的内容时需要同时满足两个条件对父目录有 x 权限——才能穿过目录到达该文件对文件本身有 r/w 权限——才能读取/修改文件内容例用户 zzz 访问 /home/zzz/secret.txt 需要 - / → 任何人都有 r-x 权限 ✅ - /home → zzz 需要 x 权限 ✅ - /home/zzz → zzz 作为所有者有 rwx 权限 ✅ - secret.txt → zzz 需要 r 权限才能读取 ✅7.2 创建/删除文件时当用户要在目录中创建或删除文件时起决定作用的是父目录的权限而不是文件自身的权限例用户 A 在 /shared 目录下创建了一个文件 file.txt - /shared 权限为 rwxrwxrwx任何人可读写执行 - file.txt 权限为 rw-------仅 A 可读写 此时用户 B 能否删除 file.txt ✅ 能因为 B 对父目录 /shared 有 w 和 x 权限 ❌ 但 B 不能读取 file.txt 的内容受文件自身 r 权限限制7.3 总结对照表操作受父目录权限影响受文件自身权限影响关键权限进入目录✅—父目录 x列出目录内容✅—父目录 r读取文件内容✅✅父目录 x 文件 r修改文件内容✅✅父目录 x 文件 w删除/重命名文件✅❌父目录 wx在目录中创建文件✅—父目录 wx关键结论对文件内容读写的控制 父目录的 x 权限 文件自身的 r/w 权限对文件创建/删除的控制 ≈ 父目录的 wx 权限文件自身的权限对此无效。这就是粘滞位Sticky Bit存在的原因——防止用户随意删除他人的文件。八、修改权限与归属8.1 chmod — 修改权限# 字符模式chmoduxfile# 给所有者添加执行权限chmodg-wfile# 移除所属组的写权限chmodorfile# 将其他人的权限设为只读chmodaxfile# 给所有用户添加执行权限# 数字模式chmod755file# rwxr-xr-xchmod644file# rw-r--r--chmod700file# rwx------# 递归设置目录权限chmod-R755/path/to/dir8.2 chown — 修改所有者与所属组# 仅修改所有者chownzzzfile# 同时修改所有者和所属组chownzzz:zzzfile# 仅修改所属组chown:group1file# 递归修改chown-Rzzz:zzz /path/to/dir九、特殊权限详解9.1 SUIDSet UID作用当可执行程序设置了 SUID 权限后普通用户在执行该程序期间暂时获得程序文件所有者的权限。典型例子/usr/bin/passwd[rootserver ~]# ll /usr/bin/passwd-rwsr-xr-x.1root root326488月102021/usr/bin/passwd普通用户修改密码时需要写入只有 root 能访问的/etc/shadow文件。正是因为passwd命令设置了 SUID所有者权限位上的s普通用户在执行它时暂时获得了 root 身份才能成功修改密码。注意✅ 仅对二进制程序有效✅ 仅在程序执行期间生效❌ 对脚本文件无效9.2 SGIDSet GID对文件执行者暂时获得文件所属组的权限。对目录在该目录下新建的文件或子目录其所属组自动继承父目录的所属组。9.3 Sticky Bit粘滞位作用仅对目录有效。设置了 Sticky Bit 的目录中用户只能删除自己创建的文件即使他对该目录有 w 权限也无法删除别人的文件。典型例子/tmp目录[rootserver ~]# ll -d /tmpdrwxrwxrwt.10root root4096Jul1010:00 /tmp权限位上的t就是 Sticky Bit 标志。9.4 设置特殊权限# 字符模式chmodusfile# 设置 SUIDchmodgsfile# 设置 SGIDchmodotdir# 设置 Sticky Bit# 数字模式4位数字chmod4777file# SUID rwxrwxrwxchmod2777file# SGID rwxrwxrwxchmod1777dir# Sticky Bit rwxrwxrwx首位数字含义0不设置特殊权限1仅 Sticky Bit2仅 SGID3SGID Sticky Bit4仅 SUID5SUID Sticky Bit6SUID SGID7全部三种特殊权限十、ACL 访问控制列表当传统的 UGO 权限模型无法满足精细化权限管理需求时ACLAccess Control List就派上用场了。10.1 查看 ACLgetfacl /project10.2 设置 ACL# 给指定用户分配权限setfacl-mu:sss:rx /project# 给指定组分配权限setfacl-mg:group1:rwx /project# 递归设置setfacl-R-mu:sss:rx /project# 设置默认权限新文件自动继承setfacl-d-mu:sss:rx /project10.3 删除 ACL# 删除指定用户的 ACLsetfacl-xu:sss /project# 删除所有 ACLsetfacl-b/project 设置了 ACL 的文件/目录在ls -l输出中权限位后会多一个号标记。十一、umask 权限掩码11.1 概念umask决定了新建文件和目录时的默认权限。系统从完整权限中扣除 umask 值得到默认权限文件默认权限 0666 - umask 目录默认权限 0777 - umask11.2 查看与修改# 查看当前 umask[rootserver ~]# umask0022# 新建文件/目录的默认权限[rootserver ~]# touch file1 # 0666 - 0022 0644 rw-r--r--[rootserver ~]# mkdir dir1 # 0777 - 0022 0755 rwxr-xr-x# 临时修改 umask[rootserver ~]# umask 000[rootserver ~]# touch file2 # 0666 - 0000 0666 rw-rw-rw-注意umask 的修改仅对当前 shell 会话有效。若要永久修改需要写入/etc/profile或~/.bashrc。十二、查看用户登录信息命令功能读取文件users查看当前登录的用户—who显示登录用户及详细信息/var/run/utmpw显示登录用户及当前活动—last查看历史登录记录/var/log/wtmplastlog查看每个用户最近登录时间/var/log/lastlog[rootserver ~]# whoroot pts/02023-05-0614:36(192.168.48.1)[rootserver ~]# last -3root pts/0192.168.48.1 Sat May614:36 still loggedinzzz tty2 tty2 Sat May614:26 -14:33(00:07)root pts/2192.168.48.1 Sat May610:51 -14:34(03:43)[rootserver ~]# lastlogUsername Port From Latest root pts/0192.168.48.1 六5月614:36:03 08002023bin **从未登录过**
Excel 365/2021 动态数组函数实战:FILTER、XLOOKUP、UNIQUE 组合解决 5 类数据清洗难题 Excel 365/2021 动态数组函数实战:FILTER、XLOOKUP、UNIQUE 组合解决 5 类数据清洗难题 数据清洗是每个Excel用户都会遇到的痛点。传统方法需要复杂的嵌套函数、辅助列和大量手动操作,而Excel 365/2021推出的动态数组函数彻底改变了这一局面。本文将带你… 2026/7/11 2:21:29
Codex额度怎么看?5小时限制和周限额讲清楚 使用Codex一段时间后,不少用户都会遇到类似情况:明明只执行了几个任务,使用量却下降得很快;页面显示“5小时限制”,但实际并没有连续使用5小时;短期额度恢复后,仍然提示受到周限额限制。Codex的… 2026/7/11 2:17:27
企业AI数据安全:闭源模型风险与开源Mistral本地部署方案 当企业将核心业务流程交给闭源AI模型时,他们可能没有意识到一个关键问题:这些"黑盒"模型正在成为数据泄露的后门。Mistral CEO Arthur Mensch最近发出的警告直指行业痛点——闭源AI模型让实验室能够窥视你的业务流程,这不仅仅是隐私… 2026/7/11 2:15:27
基于STM32单片机智能温度PID控制系统恒温蓝牙无线APP/WiFi无线APP/摄像头视频监控设计DIY184 本系统由STM32F103C8T6单片机核心板、1.44寸TFT彩屏、(无线蓝牙/WIFI模块-可选)、DS18B20温度传感器(防水)、加热电阻驱动电路、散热风扇驱动电路、蜂鸣器驱动电路、独立按键电路及电源组成。注意视频监控及WIFI套餐才拥有视频监控… 2026/7/11 3:54:00
LV3296与PIC18F45K40嵌入式条码扫描系统设计 1. LV3296与PIC18F45K40硬件系统架构解析在嵌入式条码扫描系统中,LV3296作为前端数据采集模块,与PIC18F45K40微控制器构成了典型的"传感器处理器"架构。这种组合在工业自动化、零售POS机和物流分拣等领域有着广泛应用。LV3296是一款高性能的CM… 2026/7/11 3:54:00
Unity 2023.2打包PICO4 APK:三大高频错误解析与实战解决方案 1. 项目概述:PICO4开发与Unity打包的“最后一公里”如果你正在为PICO4开发VR应用,那么从Unity编辑器里那个运行流畅的场景,到最终能在头显里安装运行的APK文件,中间往往横亘着一道名为“打包”的鸿沟。这感觉就像精心组装了一台精… 2026/7/11 3:49:59
Re-TRAC框架:用结构化状态表示重塑LLM搜索智能 1. 这不是又一个“更大即更好”的故事,而是对搜索智能本质的重新定义你有没有试过让一个大模型帮你查点东西?比如“2024年诺贝尔物理学奖得主在获奖前最被引用的三篇论文是什么?”——问题一抛出去,模型立刻开始调用搜索工具&… 2026/7/11 3:47:58
一文读懂MFi认证完整申请流程、周期与核心难点 对于苹果配件生产企业而言,MFi认证是产品上市、出海、渠道入驻的必备资质。但很多企业对认证流程一无所知,容易出现申报报错、测试驳回、周期延误、资质失效等问题。 MFi认证不同于普通检测认证,包含会员准入、芯片采购、产品测试、官方审核… 2026/7/11 3:47:58
LV3296与STM32F031C6硬件设计及通信优化实践 1. LV3296与STM32F031C6的硬件架构解析LV3296作为一款工业级二维条码扫描模块,其核心优势在于集成了光学传感器、图像处理芯片和条码解码算法于一体。模块采用3.3V供电,工作电流典型值为120mA,通过8引脚排针引出UART和GPIO接口。在实际项目中… 2026/7/11 3:45:57
5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 [特殊字符] 5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 🎬 【免费下载链接】zimuku_for_kodi Kodi 插件,用于从「字幕库」网站下载字幕 项目地址: https://gitcode.com/gh_mirrors/zi/zimuku_for_kodi 还记得那个深夜吗?你刚下载… 2026/7/11 0:00:11
工业信号干扰处理与FOD4216光耦应用实战 1. 工业环境中的信号干扰挑战在工业自动化领域,信号采集的准确性直接关系到整个控制系统的可靠性。典型的工业现场充斥着各种干扰源:大功率电机启停产生的电磁干扰、变频器工作产生的高频噪声、继电器触点火花放电,以及长距离传输引入的共模干… 2026/7/11 0:00:11
OpenHarmony 完整项目工程整合规范 + 模块化分层架构(API23+ 标准企业级结构) 摘要前面系列教程覆盖了 ArkUI 组件、路由、生命周期、本地存储、网络请求、Ability 底层全套基础能力,本篇统一梳理标准工程目录分层、模块化拆分、代码复用规范、全局工具统一管理、项目打包权限配置、常见工程报错统一解决方案,形成可直接用于课程设计… 2026/7/11 0:00:11
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08