【Linux】四.权限的概念--详解

📅 2026/7/5 15:30:00
【Linux】四.权限的概念--详解
一.Linux的两种用户1.root:超级用户,在linux下有最高权限可以做任何事情2.普通用户Ubuntu/CentOs在linux做有限的事情受管控补充在Windows下管理员adminor 普通用户身份的切换的命令1.语法su[用户名]2.功能切换用户Ubuntu)要从root 用户切换到普通用户 user则使用 su user要从普通用户 user 切换到 root用户则使用 sudo -i此时系统会提示输入 root 用户的口令。切换用户。(CentOs)要从 root 用户切换到普通用户 user则使用 su user要从普通用户 user 切换到 root 用户则使用 su rootroot 可以省略此时系统会提示输入 root 用户的口令。3.举例Ubuntu系列1.root切换成临时用户额外用户自定义用户:su - 用户名2.普通管理用户Ubuntu切换成超级用户sudo -i2.退回成上一级用户ctrld/exit4.【拓展一】root具有最高权限但是不想切换成root可以选用sudo命令的方式暂时获得10~15min的权限提升。语法.sudo [命令]【拓展二】遇到下面这种情况就是重新切换成root用户执行该指令再切换回普通用户二.Linux权限管理权限本质能或者不能做某事权限出现的原因控制用户行为防止错误的发生文件权限 角色目标属性文件受人的影响人准确来说是一个角色文件还受本身的影响目标属性三种人拥有者所属组拥有者文件的权限r(read读权限 w(write写权限 x(execute可执行权限1.⽂件访问者的分类⼈⽂件和⽂件⽬录的所有者u---User中国平⺠ 法律问题⽂件和⽂件⽬录的所有者所在的组的⽤⼾g---Group不多说其它⽤⼾o---Others 外国⼈2.文件内类和访问权限事物属性1文件类型windows默认用后缀来判断文件的类型但是linux区分文件一般通过属性列的第一字符备注d表示目录-表示普通文件而且有些软件也官心后缀例如gcc⽂件类型d⽂件夹-普通⽂件l软链接类似Windows的快捷⽅式b块设备⽂件例如硬盘、光驱等p管道⽂件c字符设备⽂件例如屏幕等串⼝设备s套接⼝⽂件2文件的基本权限属性列第一个字符后面有九个字符3个为一组表示属性读r/-Read对⽂件⽽⾔具有读取⽂件内容的权限对⽬录来说具有浏览该⽬录信息的权限写w/-Write对⽂件⽽⾔具有修改⽂件内容的权限对⽬录来说具有删除移动⽬录内⽂件的权限执⾏x/-execute对⽂件⽽⾔具有执⾏⽂件的权限对⽬录来说具有进⼊⽬录的权限“—”表⽰不具有该项权限Group的作用是啥保证项目安全的前提同时也方便组内协同公司里有一台服务器有两个项目技术组A 组和 B 组老板让两个组同时开发一个项目比一比谁做的更好。虽然都是公司的员工但并不想另外一组看到我们的项目文件该怎么办呢假如 A 组中的张三创建了该项目文件张三是该项目的所属用户 Owner可读可写A 组的其它组员则是所属用户组 Group设置成可读可写B 组的人都是 Other设置成不可读不可写这样他们就什么都看不到我们对这三类访问者进行了项目文件的访问权限控制。在保证项目安全的前提下方便组内协同。3.文件权限值的表示方法也就是对文件进行可读可写是否可执行。这个就类似二进制中0/1,1表示可以0表示不可以字符表⽰⽅法8进制数值表⽰⽅法4.文件访问权限的相关设置方法1.chmod1功能设置⽂件的访问权限2格式chmod [参数] [权限] [⽂件名]3常⽤选项-R 递归修改⽬录⽂件的权限,说白了就是对文件夹中的所有内容有同样的规则说明只有⽂件的拥有者和root才可以改变⽂件的权限4chmod命令权限值的格式⽤⼾表⽰符/-权限字符:向权限范围增加权限代号所表⽰的权限-:向权限范围取消权限代号所表⽰的权限:向权限范围赋予权限代号所表⽰的权限⽤⼾符号u拥有者g拥有者同组⽤o其它⽤⼾a所有⽤⼾5选项举例1.增加取消权限备注这里面使用CentOs内核系统ubuntu同样也可以操作方式一样,输入内容一样当时我的ubnutu东西多看起来不太方便吧所以选用CentOs了。取消test.c文件拥有者的可读r)权限取消文件所属组g)可读r)可执行(x)权限取消其他用户(o)rwx可读可写可执行权限对test.c文件给拥有着提供可读权限给所属组提供可读可写权限给其他人提供可读可写可执行权限2.重新赋予权限3.没有权限时提升权限使用sudo提升用户的权限到达root水平因为权限永远约束普通用户对root没有约束4.基于三位八进制数来修改权限7的二进制是111表示 rwx可读可写可执行一次性设置三类用户的文件访问权限660-110 110 000表示只有可读写权限对于拥有者和所属组2.chownchange owner)1功能修改⽂件的拥有者2格式chown [参数] ⽤⼾名 ⽂件名chown [参数] [用户] : [用户] [文件名])用来分隔用户组和用户组3举例把 test.c 文件的拥有者改为 root提示说不允许操作。就相当于你把这个东西test.c给别人肯定是需要征得别人同意的。增加权限结果演示3.chgrp(1)功能修改⽂件或⽬录的所属组(2)格式chgrp [参数] ⽤⼾组名 ⽂件名(3)常⽤选项-R递归修改⽂件或⽬录的所属组(4)举例修改文件的所属组为 root提示说不允许操作就要使用chown使用sudo暂时提升一下我们的权限来修改文件的所属组修改结果【拓展1.】如何一次性把拥有者和所属者都进行修改【拓展2】Linux 中的默认权限由什么决定对于一般普通文件新建文件的默认权限为666rw- rw- rw-对于一般目录文件新建目录的默认权限为777rwx rwx rwx实际上你所创建的文件和目录看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask 的影响。所以我们在 Linux 中看到的实际创建出来的文件权限是这样的最终权限 起始权限~usmak)原因权限掩码的出现【权限掩码】权限掩码是由 3 个八进制的数字所组成将现有的存取权限减掉权限掩码后即可产生建立文件时最终的权限。4.umask(1)功能查看或修改⽂件掩码新建⽂件夹默认权限0666新建⽬录默认权限0777但实际上你所创建的⽂件和⽬录看到的权限往往不是上⾯这个值。原因就是创建⽂件或⽬录的时候还要受到umask的影响。假设默认权限是mask则实际创建的出来的⽂件权限是: mask ~umask(2)格式umask 权限值(3)说明将现有的存取权限减去权限掩码后即可产⽣建⽴⽂件时最终权限。超级⽤⼾默认权限掩码值为 0022普通⽤⼾默认为0002。1使用指令 umask 查看当前权限掩码我们只关注后3 个八进制数字凡是希望在 umask 中出现的权限都应该减掉不应该在文件的最终权限中出现。【最终权限计算方法一】建立文件时最终权限 默认权限 (~umask)【最终权限计算方法二】建立文件时最终的权限 默认权限 - 权限掩码2我们通过指令 umask 可用来设置建立文件时预设的权限掩码5.file 指令1功能说明辨识⽂件类型(2语法file [选项] ⽂件或⽬录3常⽤选项-c详细显⽰指令执⾏过程便于排错或分析程序执⾏的情形。-z尝试去解读压缩⽂件的内容使⽤ sudo 分配权限1修改 /etc/sudoers权限 防止普通用户失误修改sudo配置文件保证系统安全默认就740接受权限的用户 登陆的主机 (执行命令的用户) 命令2使用 sudo 调用授权的命令sudo –u [用户名] [命令]作用以指定的非root用户身份执行指令实际上就是root的身份因为临时加的权限五.目录的权限可执⾏权限:(x)如果⽬录没有可执⾏权限, 则⽆法cd到⽬录中.可读权限:(r)如果⽬录没有可读权限, 则⽆法⽤ls等命令查看⽬录中的⽂件内容.可写权限:(w)如果⽬录没有可写权限, 则⽆法在⽬录中创建⽂件, 也⽆法在⽬录中删除⽂件.思考就是只要⽤⼾具有⽬录的写权限, ⽤⼾就可以删除⽬录中的⽂件, ⽽不论 这个⽤⼾是否有这个⽂件的写权限.就好比这好像不太科学啊, 我张三创建的⼀个⽂件, 凭什么被你李四可以删掉进行验证1有一个目录dir,经过sudo提高权限后拥有者和所属组都成为root2在 dir 目录中创建一些文件并去掉其它用户的所有权限3那当我作为其它用户有 dir目录的写权限来对目录里 root 的文件执行 rm 指令我发现我可以删除root的文件哈但之前dir文件的写权限被删除了为什么我还可以删如何解决呢就引入了粘滞位的概念1.粘滞位同一个目录下不同用户创建的文件可能会被其它用户删掉为了防止被删掉给目录设置粘滞位。再去删除目录中 root 的文件提示无法删除操作不被允许总结当⼀个⽬录被设置为粘滞位(⽤chmod t),则该⽬录下的⽂件只能由1.超级管理员删除2.该⽬录的所有者删除3.该⽂件的所有者删除如果不为目录设置粘滞位任何具有该目录写和执权限的用户都可以删除和移动其中的文件。实际应用中粘滞位一般用于 /tmp 目录该目录通常保存系统中各用户产生的临时文件以防止普通用户删除或移动其他用户的文件。-d 只显示目录本身的信息不显示目录里面的文件备注ubuntu默认没有ll,需要手动配置但是CentOs7/8 root, 普通用户默认自带,需要用alias进行别名它实际上就是ls -l.三.权限总结⽬录的可执⾏权限是表⽰你可否在⽬录下执⾏命令。如果⽬录没有 -x 权限则⽆法对⽬录执⾏任何命令甚⾄⽆法 cd 进⼊⽬, 即使⽬录仍然有 -r 读 权限这个地⽅很容易犯错认为有读权限就可以进⼊⽬录读取⽬录下的⽂件⽽如果⽬录具有 -x 权限但没有 -r 权限则⽤⼾可以执⾏命令可以 cd 进⼊⽬录。但由于没有 ⽬录的读权限 所以在⽬录下即使可以执⾏ ls 命令但仍然没有权限读出⽬录下的⽂档。