金坛城乡建设管理网站,他达拉非的副作用和危害,建设速干裤移动网站,烟台汽车网站建设欢迎来到 CILMY23 的博客
#x1f3c6;本篇主题为#xff1a;文件权限与类型全解#xff1a;你的文件安全指南
#x1f3c6;个人主页#xff1a;CILMY23-CSDN博客
#x1f3c6;系列专栏#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法专题… 欢迎来到 CILMY23 的博客
本篇主题为文件权限与类型全解你的文件安全指南
个人主页CILMY23-CSDN博客
系列专栏Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法专题 | 代码训练营
感谢观看支持的可以给个一键三连点赞收藏评论。如果你觉得有帮助还可以点点关注 前言
Hello大家好这里是 CILMY23 的频道上期我们接触了Linux中组和用户组是为了让我们在多人协作的时候更好的进行权限的管理而角色和用户又是相补相成的用户扮演具体的角色角色又对用户进行补充今天我们将了解文件权限和不同的文件类型。 文件的权限
回顾前言我们说Linux中普通用户分为拥有者所属组otherroot账户角色分root和other。真正存在的用户其实是root账户和普通用户。这两者之间是互相补充的也就是说root账户可能是拥有者所属组other普通用户也可能是拥有者所属组other。接下来推荐是使用普通用户来进行操作不使用root账户。
在上一期文章中我们创建了三个文件分别是file1,file2,file3.
这一串字符串从左到右依次代表了什么
第一个和第二个我们暂时不看第三个开始是文件的拥有者文件的所属组文件的大小文件最近一次的修改时间或者创建时间文件名。
这次我们要重点关注第一串字符串。
第一个字符-,表示这个文件的文件类型。我们说看到开头是-,它代表一个普通文件如果是目录开头则是d。这个我们在之前的文章中有写到过指令篇ls。
除此之外还剩下九个字符那为什么是九个字符呢这个其实跟文件的属性权限有关常见的是三种下一篇会讲第四种可执行权限。 常见的文件权限 r读权限w写权限x可执行权限 所以我们经常描述一个文件的权限的时候因为权限等于人事物的属性也就是角色事物的属性所以我们要谈一个文件的权限必定是这个文件它的拥有者具有什么权限所属组具有什么权限other具有什么权限所以权限等于我们对应的人事物属性所以权限得分人去讨论。而我们的Linux当中得分我们的账号就是我们的角色一共会有三种角色。叫做拥有者所属组和other。所以为什么这里是9列呢
因为这九列是三三为一组。第一组表示拥有者权限第二组表示所属组权限第三组表示other权限。所以我们的权限是三三一组。
那我们先着重搞懂一组后再搞懂其他组因为搞懂一组之后另外两组可以类推。我们从第一组拥有者权限开始它有三个权限位置。rwx。 拥有者权限
拥有者权限Owner Permissions 是指文件或目录的创建者即拥有者对该文件或目录所具有的权限。具体来说 读权限r允许拥有者查看文件的内容或列出目录中的文件名。写权限w允许拥有者修改文件的内容或在目录中添加、删除文件。执行权限x允许拥有者执行文件如果是可执行文件或进入目录。 说白了也就是有这个权限它就有对应的字母没有这个权限就是-。
修改文件对应权限 1.如何快速修改权限
我们既然知道了拥有者的权限由三种构成那能不能修改如果能修改应该如何修改但是在探讨这个问题之前我们得先了解一下谁能修改
其实一个文件的权限能由对应的文件拥有者或者root来修改。
我们可以通过实际操作来验证是否只能由这两个账户来修改文件的权限。 whoami查看后确认我是文件的拥有者所以我可以修改权限
我们可以使用指令chmod 来修改拥有者权限 chmod [用户类别][操作][权限] 文件名
u文件的拥有者userg所属组groupo其他用户othersa所有用户all
移除权限
实操如下 指令chmod 拥有者u 减去权限r也就是删除权限。 功能删除文件的读权限 指令chmod 拥有者u 减去权限r也就是删除权限。 功能删除文件的拥有者的读权限
加权限
我们还可以把权限加回来
同样的对修改所属组和other的使用方法也一样
总结起来就是我们对单个人它的任意权限组合都可以采用字符组合的方式来去掉一个人的一个权限或一个人的多个权限。用户通过指令来修改权限角色拥有对应的权限才能对文件进行对应的操作。
如何修改多个人的权限 多人的权限移除 如果我们想修改拥有者和所属组给他们两个都去掉w可以采用逗号组合的形式。
多人的权限添加
所以我们可以更改一个人的多个权限也可也更改多个人的一个权限或者多个人的多个权限只是组合时用分离。
所有人移除权限
这样一个个选择过于麻烦了所以我们可以直接用aall来代表所有人 所有人加权限
通过这些我们知道所有人可以同时移除权限 也可以所有人都加权限。而三种权限字符组合的顺序是无所谓的当然不推荐这么干。
总结 2.权限有无的表现
普通用户
我们在上述过程中体会了权限的修改我们知道了用户能够通过chmod来修改对应角色的权限可是 有权限和没权限的最终表现是什么并且root本身叫超级管理员什么都能做可是在权限这里能否体现超级管理员的身份呢
现在我们在同一个服务器下可以看到左边是普通用户右边是root账户现在file1.txt没权限了想用cat阅读发现没法阅读被拒绝了。用echo 想将字符串“hello world”输出到file1文件中发现同样也被拒绝了。 文件是我的但是没有权限所以既不能读也不能写更不能执行。 但当我们开放对应权限普通用户就能进行对应的操作。 所以我们能得到结论对于普通用户自身要受到对应权限的约束即便这个文件是自己的
root账户
那root就不信邪就来尝试了对于file1.txt文件来说root相当于other。 那如果有权限我root肯定是可以访问的所以我们只要验证没有权限的情况就可以了。 我们可以发现我们想怎么做都可以我们可以进行读写而不被对应权限限制。就透露出一种我想读就读想写就写反正root不受权限的约束。 所以结论也比较明显结论root不受权限约束的那能不能限制别人也就是拦截普通用户。
权限匹配 通过上述我们可以看到普通用户受到文件对应权限的约束而root账户不受权限约束但我们在验证普通用户的时候还漏掉一种情况那就是如果我拥有者没权限而所属组有权限呢
如果我们当前给拥有者去掉读写细节是我们此刻是文件的拥有者和文件的所属组。我当前去掉了拥有者的读写他对于文件当前什么权限都没有。 我们发现都没权限我现在是拥有者什么权限都没有这一切都符合权限的定义可是我当前也是文件的所属组拥有者没权限所属组是具有权限的呀为什么不拿所属组权限匹配
这是因为Linux进行权限匹配的时候对用户身份进行识别的时候只识别一次。 也就是说当前你这个用户首先操作系统是认识你的另外你的名字是会被操作系统记到属性里的所以系统在做对比的时候发现这个用户当前是拥有者一旦把你这个人和拥有者的这个名字匹配成功了就是只看拥有者的权限只匹配一次。只匹配一次虽然你是所属组对不起我不做了不去匹配你的所属组权限你的权限和身份只匹配一次。 如何证明 我们可以通过修改拥有者来验证。如果第一次匹配拥有者失败的时候操作系统会接着往下匹配匹配后是所属组你就有所属组的权限。那么如何更改一个文件的拥有者包括所属组包括other呢等会再说我们现在操作一下。但是注意更改文件的拥有者要有root权限。 我们通过使用指令chown来修改文件的拥有者注意我们是在root的情况下操作的 我们发现我们可以进行正常的读写所以身份识别的时候我们只识别一次那么一旦匹配成功就不往后匹配了匹配不成功就自动匹配你不是拥有者就自动匹配你是不是所属组如果两者都不是你就是other。 接下来我们修改对应的所属组 我们发现这个时候我们无法进行对应的读写操作了。所以你是普通用户也不行。 然后把other的权限公开了。 所以你又可以进行读写了。 所以我们已经证明了权限是可以限定人的。 我们这两个知识点已经掌握了。 3.修改权限的第二套做法
根据我们之前讲的权限的本质是等于人具体事物的属性。 所以我们现在也说。权限 用户角色文件权限所以刚刚写的第一点和第二点一直是在修改文件的属性。而且修改文件属性我们已经看到有和没有的表现了下一个问题就是我们能不能更改文件的角色呢关于这个用户的角色问题呢我们刚刚已经演示做过了。但是我们现在重点谈一谈。我们除了能改文件属性外还能修改它的用户角色。我们想具体修改它的拥有者所属组这样的概念。
普通用户是没有权限修改拥有者和所属组的。所以想把一个文件的拥有者和所属组更改的本质是你把文件给另一个人或者给另一个组。
为什么我们能修改我们文件的权限就是我们刚刚已经证明我们是可以修改我们文件的权限的。那为什么能改这个文件的权限那是因为我们是这个文件的拥有者对不对
所以你我们能改或者我们是root。但是当我们在改这个文件的时候其实并没有直接的去影响别人间接肯定是影响了现在我把文件的拥有者改了那它的本质是不是把文件给别人
在现实生活中你把一个东西给别人都不要征得别人的允许给你五百万一个亿不需要征求你的意见。虽然总有一些桀骜不驯或者清高的少年说我不要你给我再多钱我都不要那就当我没说。哈哈哈。
但是万一这个钱是不干不净的呢所以我们把一个文件给别人的时候这个文件的好坏得清楚。所以一个文件我们轻易不能把文件给别人。所以默认这里即便你这个文件你是它的拥有者也给不了别人你得让别人愿意接收这个文件。
但是我们把文件给别人的时候还要征得同意打招呼Linux也考虑到这一点。所以当我们想把文件给别人但是你的权限不允许你把文件给别人的时候那就强制给别人。所以一般更改文件的拥有者如果你是普通用户的话那么你就需要进行sudo。也就是说呢此时我们需要对chown短暂提权。 所以如果你想把文件给别人不能用普通权限给别人要么sudo要么su 成root。给别人是强制给的。
推荐使用su 当然最后再说一下就是我们的root不用加sudo因为root不受权限约束那怎么没见修改other的指令呢 因为不需要。那么为什么呢
其实你只要把拥有者改了把所属组改了other自然而然就变了。 总结
1. 对于普通用户自身要受到对应权限的约束即便这个文件是自己的
2.root不受权限约束的
3.Linux进行权限匹配的时候对用户身份进行识别的时候只识别一次。
4.不需要修改other因为你只要把拥有者改了把所属组改了other自然而然就变了。
快捷键shift alt t 快捷打开新窗口。 ️感谢各位同伴的支持本期文件中的权限专题就讲解到这啦下期我们将讲解可执行权限和目录权限如果你觉得写的不错的话可以给个一键三连点赞收藏评论可以的话还希望点点关注若有不足欢迎各位在评论区讨论。