Linux文件权限、用户组与磁盘管理:实验总结与实战指南 简介这是一份操作系统实验的Linux实践总结文档面向计算机相关专业学生、Linux初学者及有一定基础的操作系统学习者紧扣文件权限、用户组与磁盘管理三大核心模块。全文基于具体实验操作系统梳理了文件与目录管理的常用命令如ls、cd、mkdir、cp、mv、rm等深入讲解rwx权限表示、chmod修改权限、chown修改所有者与所属组并介绍grep、sed、awk文本处理工具同时涵盖用户与组管理中的useradd、usermod、userdel、groupadd等命令及/etc/passwd、/etc/shadow配置文件解析磁盘管理部分则包括fdisk分区、mkfs格式化、mount挂载、umount卸载、/etc/fstab自动挂载配置及quota磁盘配额工具。压缩包内包含1个docx格式文档体积仅12KB内容精炼便于阅读。目前已有309人学习可作实验总结报告、期末复习或入门指南帮助读者掌握Linux基础操作与系统管理的关键技能提升实际动手能力。1. Linux 文件权限与路径实验里最容易翻车的两件事不少同学第一次做 Linux 操作实验最容易把精力花在背命令上结果真正翻车的地方往往是两件看似简单的事一条rm -rf把不该删的文件删了或者一个chmod 777给所有用户开了后门。这份操作系统实验总结文档恰好把文件权限、用户与组管理、磁盘管理三条主线串成了可实操的动作链不是干巴巴的命令列表而是每一步都告诉你为什么要这么做。它适合两类人一是要交实验报告的计算机相关专业学生二是刚接触 Linux、想快速建立系统操作手感的学习者。这份文档当作自查清单用比当教程读更有价值。2. 文件与目录管理命令矩阵、路径判定与权限模型2.1 路径体系是第一步绝对路径、相对路径与家目录实验报告里反复强调掌握ls、cd、mkdir、rm、cp、mv但很多人卡在路径理解上。Linux 的路径只有两种绝对路径以/开头从根目录开始定位相对路径从当前目录出发用.表示当前目录..表示上一级目录。还有两个特殊符号~直接跳到当前用户的家目录cd -能回到上一次所在的目录。这个细节在实验里经常被用到比如你从/home切到/etc之后想回去cd -比重新敲一遍绝对路径快得多。# 相对路径与绝对路径的典型对比 cd /home/testuser # 绝对路径切换 cd ../.. # 相对路径向上跳两级 cd ~ # 回到当前用户家目录 cd - # 回到上一次工作目录这里的逻辑是绝对路径在任何情况下都可预测适合在脚本和配置文件中使用相对路径依赖当前所在位置交互操作时更省事。实验里容易混淆的是cp和mv对目标目录尾部/的处理cp file dir/明确是复制到目录里而cp file dir在 dir 不存在时会把 file 重命名成 dir这是一个非常隐蔽的差异。我一般建议实验时一律给目标目录加尾部斜杠避免踩中这个坑。常用命令的选项参数是实验考核的重点下面这张表可以对照着练命令常用选项说明ls-a、-l、-lh显示隐藏文件、详细信息、人性化大小mkdir-p、-m递归创建父目录、指定初始权限cp-r、-p、-i递归复制、保留属性、覆盖前询问rm-r、-f、-i递归删除、强制删除、删除前询问mv无常用选项移动或重命名跨文件系统时是复制加删除2.2 权限表示与 chmod数字模式和符号模式文件权限的表示方法是rwx三元组每三个字符为一组依次表示所有者、所属组、其他用户的权限。这里有一个实验里常被忽略的点r、w、x对文件和目录的含义完全不同。对文件来说r是能读内容w是能改内容x是能执行对目录来说r是能列出目录里的文件名w是能增删改名x是能进入该目录。很多人给目录配了r和w却忘了x结果文件列表看得到、目录进不去非常典型。# 数字模式r4, w2, x1 chmod 754 test.sh # rwxr-xr--所有者全权限组可读可执行其他人只读 # 符号模式u所有者, g组, o其他人, a所有人 chmod ux test.sh # 给所有者加执行权限 chmod g-w test.sh # 去掉组的写权限 chmod ar readme.txt # 所有人增加读权限数字模式的本质是权限位的二进制加权求和7等于421表示全部权限5等于41表示读加执行。符号模式更适合只改某一类用户的某一项权限不用重新算一遍数字。实验里还需要理解umask的默认权限计算逻辑新建文件的默认权限是666减去umask值新建目录是777减去umask值。系统默认的umask一般是022所以文件默认是644目录默认是755。检查umask可以用umask命令直接查看。2.3 chown 与属主属组权限归属的修改闭环chmod 改的是权限位chown 改的是文件的归属关系两者配合才能完整控制一个文件的访问。chown的基本用法是chown user:group file同时修改所有者和所属组也可以只改所有者或只改组。改组的单独命令是chgrp但实际操作中直接用chown user:group一次到位更常见。# 修改属主和属组 chown testuser:developers app.log # 属主设为 testuser属组设为 developers chown testuser app.log # 只改属主 chown :developers app.log # 只改属组 chown -R testuser:developers /data/project # 递归修改整个目录树-R递归参数是实验里经常用到的但有一个边界很多人不知道-R默认不跟随符号链接也就是说如果目录里有软链接指向别处chown -R不会穿透这个链接去改目标文件。这在多目录联动的实验场景里容易造成明明递归了某个文件属主还是不对的困惑。另外注意普通用户只能对自己拥有的文件执行chown改成别人是做不到的只有root能任意改归属这也是实验里所有chown练习都要求用root身份的原因。文件权限的实验思路应该是先建立所有者、组、其他人的视角再理解rwx在文件和目录上的语义差异最后用 chmod 和 chown 配合完成权限收口。文档里对此的总结顺序也是这样的按这个顺序过一遍实验报告里关于权限的部分基本不会出问题。3. 用户与组管理从 useradd 参数到配置文件字段3.1 useradd 的命令参数与用户创建完整步骤用户管理是 Linux 系统管理的入口级技能实验里要求掌握useradd、usermod、userdel三个命令。很多初学者只记得useradd username这种最小用法创建出来的用户既没有家目录默认 shell 也可能是sh而非bash更不会加入任何附加组。实际创建一个能用的用户至少需要-m创建家目录、-s指定 shell、-G指定附加组三个参数。# 创建一个可登录的普通用户并附加到 developers 组 useradd -m -s /bin/bash -G developers testuser passwd testuser # 设置登录密码 # 修改已有用户把 testuser 追加到 sudo 组 usermod -aG sudo testuser # -a 追加G 指定附加组 # 删除用户并清理家目录和邮件池 userdel -r testuser参数说明-m会在/home下创建同名家目录并复制/etc/skel里的骨架文件-s /bin/bash指定登录 shell不指定的话部分发行版默认是/bin/sh命令行体验会差很多-G用于添加附加组注意usermod的-G如果不带-a会把用户从原有附加组里移除这是实验里用户权限突然变少的常见原因。我一般建议修改附加组时-aG固定连用除非你明确要做覆盖。用户删除要特别注意userdel默认不删除用户的家目录和邮件池实验指导里如果明确要求清理干净必须加-r参数。不加-r的话系统里会残留一堆孤儿文件重新创建同名用户时会直接继承旧家目录引发安全问题。3.2 用户配置文件/etc/passwd 与 /etc/shadow 的字段拆解实验要求通过配置文件管理用户信息这就绕不开/etc/passwd和/etc/shadow两个文件。/etc/passwd每行代表一个用户冒号分隔七个字段用户名、密码占位符、UID、GID、注释信息、家目录、登录 shell。注意密码字段在这里是x真正的密码哈希在/etc/shadow里后者只有 root 能读。# 查看用户信息 cat /etc/passwd | grep testuser # testuser:x:1001:1001::/home/testuser:/bin/bash cat /etc/shadow | grep testuser # testuser:$6$hD9...:19000:0:99999:7:::/etc/shadow的九个字段依次是用户名、密码哈希、上次修改密码距 1970-01-01 的天数、两次修改密码的最小间隔天数、密码有效期最大天数、过期前告警天数、宽限天数、账号失效时间、保留字段。实验里最常考的是前五栏的含义尤其是最小间隔和最大有效期的关系。UID 的分配也有规律0 属于 root1 到 999 一般是系统服务用的虚拟用户1000 及以上的才是普通用户实验里创建的用户 UID 通常落在 1000 之后。有一点要特别说明直接编辑/etc/passwd修改用户信息是错误做法文件格式一旦写错会导致所有用户无法登录。正确做法是使用usermod命令改属性或者用vipw加锁编辑。这份实验总结文档里强调了配置文件字段的理解价值这比记住命令更有用因为你排查用户登录问题时第一反应应该是去看/etc/passwd和/etc/shadow里的字段是否合理。3.3 组管理groupadd 到 gpasswd 的集中授权组的作用是权限的集中管理实验里的核心逻辑是文件权限的中间三位是针对组的把多个用户放进同一个组再给目录设置组权限就能实现多人协作。组管理的命令族是groupadd、groupmod、groupdel分别对应创建、修改、删除组。修改组的名称用groupmod -n 新名 旧名删除一个组的前提是该组不是任何用户的主组否则会报错。# 创建组并查看 groupadd developers grep developers /etc/group # developers:x:1002: # 把用户加入或移出组 gpasswd -a testuser developers # 加入 gpasswd -d testuser developers # 移出 # 修改组名 groupmod -n devteam developers/etc/group文件的格式是组名:密码占位符:GID:组成员列表第四个字段只有附加组成员才会列出主组不在这里体现。实验里容易忽略的是用户新加入一个组后已登录的会话不会立刻获得新组的权限必须重新登录或者执行newgrp developers切换。很多人在实验里加了组还是没权限多半是卡在这个点。组权限的设计价值在于你不用挨个给用户配权限把用户划进特定组目录的组权限就自动覆盖到所有人。4. 磁盘管理与文件系统分区、格式化、挂载、配额的完整动作链4.1 分区fdisk 的建、删、写流程与容量边界磁盘管理实验的第一步是对新磁盘分区实验环境里通常是给虚拟机加一块新虚拟磁盘然后执行fdisk /dev/sdb进入交互式分区工具。进入后可以看到简单的命令提示输入n新建分区p选择主分区类型然后按提示选择分区号、起始扇区直接回车默认、结束扇区可用5G这样的格式指定大小最后输入w写盘退出。p可以随时打印当前分区表确认结果。# 交互式分区流程 fdisk /dev/sdb # Command (m for help): n # Partition type: p primary, e extended # Select: p # Partition number (1-4): 1 # First sector: (回车默认) # Last sector: 20G # Command (m for help): p # Command (m for help): w这里有一个容量边界的知识传统fdisk使用 MBR 分区表最大只能管理 2TB 的磁盘超过 2TB 要使用 GPT 分区表命令是gdisk。实验里的小容量磁盘用 fdisk 没问题但报告里如果能主动写明这个边界会加分。分区写完后系统不一定立刻识别需要执行partprobe /dev/sdb让内核重新读取分区表或者重启系统。lsblk命令可以查看分区结果和挂载点的树形结构是分区后最直接的验证手段。4.2 格式化与文件系统选型ext4 与 xfs 的取舍分区完成后的标准动作是格式化实验里用mkfs系列命令。最基本的用法是mkfs.ext4 /dev/sdb1格式化为 ext4 文件系统或者mkfs.xfs /dev/sdb1格式化为 xfs。两种文件系统的选型原则ext4 是 Linux 发行版多年的默认选择兼容性好支持在线扩容和卸载后扩大分区适合存放大量中小文件xfs 擅长处理大文件和高并发写入是很多数据库和大数据场景的首选但它不支持缩容一旦分区建小了想改会非常麻烦。对比项ext4xfs最大单文件16TB8EB在线扩容支持支持缩容支持不支持意外断电恢复慢快适用场景通用、中小文件大文件、高并发格式化命令执行前会有一行设备上有数据的确认提示这是最后的后悔药回车确认后数据不再可恢复。我一般会在格式化前再用lsblk -f确认一次盘符和分区号特别是有多块磁盘的实验环境里盘符对错会导致格式化到错误的设备上。4.3 挂载与 /etc/fstab让分区开机自动挂载格式化之后的分区还不能直接用必须挂载到某个目录。挂载动作就是mount 设备 挂载点前提是挂载点目录已存在。卸载用umount卸载时有个高频坑如果当前 shell 的工作目录就在挂载点里umount会报target is busy解决方法是先cd到挂载点之外的目录再卸载。mkdir /mnt/data mount /dev/sdb1 /mnt/data df -h /mnt/data # 验证挂载结果 # 配置开机自动挂载 echo UUIDxxxxxx /mnt/data ext4 defaults 0 2 /etc/fstab mount -a # 验证 fstab 配置无误/etc/fstab是系统启动时自动挂载的配置文件每行六个字段设备标识、挂载点、文件系统类型、挂载选项、是否备份、开机检查顺序。设备标识建议用UUID而不是/dev/sdb1这样的设备名因为设备名在多磁盘环境下可能因为插拔顺序变化而漂移而 UUID 是分区的唯一身份。用blkid命令可以查到分区的 UUID。挂载选项里有一个实验常见的扩展defaults包含 rw、suid、dev、exec、auto、nouser 等一组默认配置。如果要在挂载点允许执行二进制程序挂载选项里必须含exec只读挂载用ro。改完 fstab 后务必执行mount -a验证如果配置写错重启后系统可能卡在紧急模式这是新手最容易翻车的点之一。4.4 磁盘配额quota 的设置四步与常见遗漏磁盘配额是实验的综合型考点目的是限制用户或组对磁盘空间的使用量。配额设置需要四个步骤每一步漏掉都会导致配额不生效顺序建议固定为改 fstab、重新挂载、生成配额数据库、设置配额值、开启配额。# 1. 在 fstab 中对应分区的挂载选项里加 usrquota # /dev/sdb1 /mnt/data ext4 defaults,usrquota 0 2 mount -o remount /mnt/data # 重新挂载使新选项生效 # 2. 生成配额数据库文件 quotacheck -cug /mnt/data # 3. 设置用户配额软限制和硬限制 edquota -u testuser # 4. 开启配额 quotaon /mnt/dataedquota -u打开编辑器后soft是软限制超过后用户会收到警告但还能继续写hard是硬限制超过后直接拒绝写入。两者的典型配比是 soft 小于 hard中间留出缓冲空间。常见的遗漏有两个一是忘记执行quotaon配额数据库建了却没生效二是修改 fstab 后没有重新挂载usrquota选项没有加载quotacheck会报错或生成空数据库。排查时用quota -u testuser查看当前配额状态能看到 limits 和 usage 就是生效了。配额实验做完后清理动作也要完整移除配额用quotaoff、删除配额记录用quotacheck -cug重跑、fstab 里去掉usrquota。这个完整的动作链恰恰是实验报告的加分项说明你理解配额不是单条命令而是一套状态管理流程。5. 文件权限与磁盘的常见问题四个实验里反复出现的坑5.1 rm -rf 删掉了不该删的文件现象以 root 身份执行rm -rf删除目录时目录里权限为只读的文件也被删掉了实验环境里的一个配置文件就这么消失了。原因root 用户拥有绕过文件权限的 DAC 能力-f参数还会跳过写保护确认两层机制叠加后删除过程没有任何拦截。解决实验练习尽量用普通用户身份操作避免 root 一撸到底删除前先ls确认内容需要保留就先mv到回收目录。这是我在实验总结里反复强调的习惯删文件之前给自己留一个后悔药路径。5.2 umount 报 target is busy现象执行umount /mnt/data时系统返回target is busy挂载点卸载不掉。原因当前 shell 的工作目录或某个进程的文件句柄仍指向挂载点目录内核拒绝卸载还占用的分区。解决先cd /退出挂载点目录再用lsof /mnt/data或fuser -km /mnt/data找出并结束占用进程。实验环境里九成是当前 shell 没跳出去先检查 pwd 再查进程。5.3 chmod 777 之后普通用户还是进不了目录现象目录权限已经设置成777普通用户cd进去时依然报Permission denied。原因该用户对目录的父目录没有x执行权限无法穿越父目录到达目标。Linux 的权限判定是逐级检查的中间某一级没有x后续权限再大也白搭。解决逐层检查从根目录到目标目录的路径上每一级目录的权限用namei -l /path/to/dir可以一次列出路径上所有目录的权限位把缺x的那一级补上即可。5.4 userdel 删掉了用户同名家目录文件残留现象userdel testuser删除用户后/home/testuser目录还在里面有一堆文件。原因userdel默认不删除家目录这是发行版刻意保留的行为防止误删用户数据。解决确认不再需要该用户数据后用userdel -r testuser连同家目录和邮件池一起清理。实验环境无所谓真实服务器里这个动作要非常慎重。5.5 fdisk 分区后系统识别不到新分区现象fdisk 写完分区表执行lsblk却看不到新分区。原因分区表修改后内核仍持有旧的分区表缓存没有自动刷新。解决执行partprobe /dev/sdb通知内核重新读取分区表或者直接重启虚拟机验证。这一步在实验指导书里经常被省略但实际环境几乎一定会遇到。6. grep、sed、awk 实战三个命令处理真实文本任务6.1 grep过滤加上下文别只看匹配行grep 的基础是过滤但实验里值得用到的是-A、-B、-E这几个参数。grep -A2 error server.log能同时打印匹配行之后的 2 行排查日志时上下文信息比匹配行本身更有价值。-E启用扩展正则grep -E error|warning一次匹配多个关键词。6.2 sed定位到行再做替换或删除sed 是流编辑工具核心用法是寻址动作。sed -i s/old/new/g config.conf全文件替换sed -i 3,5d file.txt删除指定行区间。-i是原地修改实验里记得先备份原文件sed -i.bak一步完成备份。6.3 awk列提取和简单的求和统计awk 按列处理文本默认按空白符切分$1取第一列$NF取最后一列。一套数据行里求和awk {sum $2} END {print sum} data.txt统计某个条件出现的次数awk /failed/ {count} END {print count} app.log。这份实验总结文档把文本处理放在文件权限和磁盘管理之后是有道理的前面的命令解决文件在哪、谁能动、有多大的问题文本工具解决文件里写了什么的问题两者拼起来才是一个完整的系统操作闭环。我在文档里看到这三个命令的练习案例都是日志分析类的场景这类场景下 grep 先缩小范围、sed 做批量修改、awk 做汇总统计配合管道符可以串成一条完整的数据处理链。从那以后我每次做文本处理实验都强制自己走一遍先 grep 定位再 sed 变换最后 awk 统计的流程不求一步到位但求每一步可验证。希望这份 Linux 基础操作与系统管理的实验总结能帮到你照着文档把命令敲一遍再回来读这六个章节会比单刷命令列表扎实得多。本文还有配套的精品资源点击获取