2026/4/6 5:48:41
网站建设
项目流程
一、课前复习1.1 上节课重点回顾类别内容指令收尾打包压缩、跨平台传输、体系结构、热键shell 原理shell 是包裹在内核外的软件层负责翻译用户命令用户切换su路径不变、su -重新登录用户类型root超级管理员、普通用户1.2 用户切换规则切换方向命令是否需要密码普通 → rootsu或su -需要 root 密码root → 普通su 用户名不需要密码root 是特权用户切换成任何人都不需要密码。二、指令提权sudo2.1 为什么需要 sudo普通用户在某些场景下需要以 root 身份执行一条命令但又不想完整切换用户。例如# 普通用户想创建属于 root 的文件 sudo touch root.txt执行sudo时输入的是当前普通用户的密码不是 root 密码第一次使用后会有 10~15 分钟的免密有效期2.2 sudo 的典型应用场景安装软件yum install、apt-get install需要写/usr/bin/等系统目录拷贝文件到系统目录sudo cp myapp /usr/bin/删除系统目录中的文件2.3 白名单机制/etc/sudoers不是所有普通用户都能用sudo。系统通过/etc/sudoers文件白名单控制哪些用户可以执行sudo。# 只有 root 能查看/修改这个文件 cat /etc/sudoers只有白名单中的用户才能使用sudo添加用户到白名单需要 root 权限企业中普通员工需要找管理员添加这边建议sudo这个指令先看还没有讲到vim后面再改三、权限的核心概念3.1 什么是权限权限决定的是能还是不能。校长能进校长办公室学生不能 → 权限限制了人不是因为你叫张三所以能进而是因为你是校长这个角色3.2 权限的两个核心要素要素说明角色拥有者、所属组、其他人other目标属性读r、写w、执行x权限 角色 目标属性3.3 角色的三层结构角色英文说明拥有者user/owner文件的创建者所属组group文件所属的用户组其他人other既不是拥有者也不在所属组中other 不需要在文件属性中记录因为只要不是拥有者也不是所属组就自动归为 other。3.4 为什么需要所属组场景A 组和 B 组在同一台机器上竞争开发同一个产品。只有拥有者和other两种角色时组长想看代码只能放开 other 权限但 B 组的人也能看到有了所属组把 A 组所有成员加入同一个组只给组内成员开放权限B 组看不到所属组的本质更精细化的权限管理四、权限的表示与查看4.1ls -l输出的权限位-rw-rw-r-- 1 whb whb 0 Mar 30 10:00 my.txt第 1 个字符文件类型-普通文件d目录第 2-10 字符9 个权限位每 3 个一组位置角色第 2-4 字符拥有者权限第 5-7 字符所属组权限第 8-10 字符other 权限4.2 权限位的含义每个角色的 3 个位置分别表示读r、写w、执行x字符含义r允许读w允许写x允许执行-不允许该操作示例rw-r--r--拥有者rw-可读可写不可执行所属组r--只读otherr--只读五、权限修改操作5.1 修改文件属性chmod方式一字母法推荐可读性强chmod ur my.txt # 拥有者加读权限 chmod g-w my.txt # 所属组去掉写权限 chmod ox my.txt # other 加执行权限 chmod ar my.txt # 所有人加读权限a all组合使用chmod urw,gr,o-rwx my.txt # 同时修改多个角色方式二八进制法把 3 个权限位看作二进制数r4、w2、x1二进制八进制权限0000---0011--x0102-w-0113-wx1004r--1015r-x1106rw-1117rwx示例chmod 664 my.txt # 拥有者:6(rw-)所属组:6(rw-)other:4(r--) chmod 777 my.txt # 所有人: rwx chmod 600 my.txt # 拥有者:rw-其他人:---5.2 修改文件角色chown/chgrp# 修改拥有者 sudo chown root my.txt # 修改所属组 sudo chgrp root my.txt # 同时修改拥有者和所属组 sudo chown whb:whb my.txt注意普通用户不能把自己的文件给别人防止甩锅必须用sudo。5.3 权限匹配顺序系统判定用户对文件的权限时只匹配一次顺序为是否是拥有者→ 是用拥有者权限结束是否在所属组中→ 是用所属组权限结束否则 → 用 other 权限这意味着如果你既是拥有者又在所属组中系统只看拥有者权限不会叠加。六、目录权限详解权限对目录的作用r可以查看目录内容lsw可以在目录中新建/删除文件或子目录x可以进入目录cd6.1 验证实验# 进入目录需要 x 权限 chmod u-x mydir/ cd mydir/ # 失败Permission denied# 查看目录内容需要 r 权限 chmod ur,u-x mydir/ ls mydir/ # 能看到文件列表# 在目录中新建/删除文件需要 w 权限 chmod uw mydir/ touch mydir/newfile # 成功重要结论删除一个文件取决于文件所在目录的 w 权限与文件自身的权限无关即使你的创建者是root但是在我zzr的目录里我还是能删你。七、缺省权限与 umask7.1 现象touch file.txt mkdir dir/ ls -l # -rw-rw-r-- 1 whb whb 0 ... file.txt (664) # drwxrwxr-x 2 whb whb 4096 ... dir/ (775)普通文件默认权限不是 666而是 664目录默认权限不是 777而是 7757.2 起始权限文件类型起始权限普通文件666rw-rw-rw-目录777rwxrwxrwx普通文件起始不带 x可执行因为大部分文件不需要执行。7.3 umask权限掩码umask # 查看当前掩码如 0002计算公式最终权限 起始权限 (~umask)示例umask 002普通文件666 (~002) 666 775 664目录777 (~002) 777 775 7757.4 umask 的意义可配置性系统管理员可以修改 umask控制新建文件的默认权限安全性默认屏蔽 other 的写权限002 中的 2 就是屏蔽 other 的 w7.5 修改 umaskumask 000 # 取消所有屏蔽不推荐 umask 022 # 屏蔽组和 other 的写权限umask 是 shell 级别的配置关闭终端后会恢复默认值。八、粘滞位Sticky Bit8.1 问题场景在共享目录如/tmp中所有人都能创建文件需要 w 权限但 A 创建的文件B 也能删除因为删文件取决于目录的 w 权限需求既能共享又能保护自己的文件不被别人删除。8.2 粘滞位的作用给目录添加粘滞位后任何人都可以创建文件只有文件拥有者可以删除自己的文件root 除外8.3 设置粘滞位# 添加粘滞位给 other 的 x 位变成 t chmod t shared_dir/ # 八进制法1 在特殊权限位 chmod 1777 shared_dir/8.4 查看粘滞位ls -ld /tmp # drwxrwxrwt ... /tmp # ↑ 小写 t 表示有粘滞位且 other 有 x8.5 粘滞位的特征特征说明作用对象目录不是普通文件典型目录/tmp系统临时目录约束对象other拥有者和所属组不受影响root 用户不受粘滞位约束8.6 验证实验# 在 /tmp 中测试 cd /tmp touch myfile chmod 600 myfile # 只让自己能读写 su - 其他用户 # 切换到其他用户 rm /tmp/myfile # 失败Operation not permitted九、多用户隔离原理ls -ld /home/whb /home/zpw # drwx------ 2 whb whb ... /home/whb # drwx------ 2 zpw zpw ... /home/zpw每个用户的家目录权限为700只有自己能进入用户之间天然隔离需要共享文件时使用公共目录如/tmp并配合粘滞位十、完整知识点总结10.1 命令汇总命令作用su/su -切换用户sudo以 root 身份执行单条命令chmod修改文件权限字母法/八进制法chown修改文件拥有者chgrp修改文件所属组umask查看/设置权限掩码chmod t设置粘滞位10.2 核心结论八条#结论1普通用户只能用sudo提权且需要在/etc/sudoers白名单中2权限 角色user/group/other 属性r/w/x3系统判定权限时只匹配一次user → group → other4进入目录需要x权限5查看目录内容需要r权限6在目录中创建/删除文件需要目录的w权限7删除文件与文件自身权限无关只取决于目录的 w 权限8粘滞位让共享目录中的文件只能被拥有者删除10.3 关于 root 用户root 不受任何权限约束文件正在使用的情况除外。root 可以读写执行任何文件root 可以删除任何文件即使有粘滞位root 可以修改任何文件的拥有者/所属组十一、本节课简单总结今天我们完成了 Linux 权限模块的完整学习这是 Linux 基础阶段最重要的知识点之一指令提权sudo让普通用户可以以 root 身份执行单条命令但需要在/etc/sudoers白名单中。权限的核心要素角色user/group/other和属性r/w/x。权限 角色 属性。权限修改chmod改属性字母法或八进制法chown/chgrp改角色需要 sudo目录权限与普通文件完全不同。进入需要 x查看需要 r增删需要 w。删除文件取决于目录的 w 权限与文件自身无关。缺省权限与 umask新建文件的默认权限由起始权限和umask共同决定。umask 让系统变得可配置体现了 Linux 的灵活性。粘滞位解决共享目录中的删文件问题。给目录加t权限后只有文件拥有者能删除自己的文件。/tmp就是典型例子。多用户隔离每个用户的家目录权限为 700天然隔离。需要共享时使用/tmp等公共目录。关于命令记忆不要死记硬背多用自然就记住了。重要的是理解背后的原理——权限的本质、角色的含义、umask 的计算方式、粘滞位的应用场景。