Hello大家好! 很高兴与大家见面! 给生活添点快乐,开始今天的编程之路。
我的博客:************<但愿.****************
我的专栏:C语言** 、题目精讲 、算法与数据结构 、C++ 、Linux**
欢迎点赞,关注
目录
一什么是权限
二为什么Linux系统层面需要权限
三Linux系统权限相关问题(一些底层问题)
3.1权限 = 人 + 文件属性
3.2Lnux系统中用户的问题
3.2.1用户相关指令
3.2.2Linux系统中的两种用户root和普通用户
3.2.3Lnux系统中不同用户之间切换
3.2.3.1用户切换快捷键
3.2.3.2用户之间的三种切换(因为Linux中分两种用户,所以有三种切换)
3.2.3.3sudo指令
3.2.4Linux角色问题
3.3文件的属性问题
四权限的指令操作
4.1修改文件权限的方法
4.2⽂件访问权限的设置指令chmod(修改文件的属性)
4.2.1chmod语法功能
4.2.2常⽤选项
4.2.3chmod命令权限值的格式
4.2.4chomd设置权限实例
4.3为什么要修改权限(没有权限会有上面改变)
4.4总结
4.5修改权限过程中的问题
4.5.1一个用户账号在一个文件中担任多个角色,其权限是什么。
4.5.2可执行权限
4.6chown和chgrp指令修改文件的人
4.6.1chown指令
4.6.2chgrp指令
4.6.3实例
4.6.4细节只有root从可以改变文件的拥有者和所属组(文件的拥有者的不行)
五Linux系统中文件的类型
5.1Linux系统中文件类型的表示方法
5.2Linux系统中的文件类型
六常见的三个问题(权限中常问的面试题)
6.1目录权限问题(想加入一个目录要什么权限)
6.1.1进入目录必须要有x权限
6.2umask系统的权限掩码
6.3权限掩码的问题
6.4建立一个不可读不可写不可执行的文件可以删除吗
6.4.1建立一个不可读不可写不可执行的文件可以删除的验证
6.4.2粘滞位
一 什么是权限
在访问资源,能还是不能的问题,即决定能还是不能的问题,你当前能做这件事就证明你又权限,反之没有。例如在日常中我们想在一个软件中想看电影不是VIP不能看。
二 为什么Linux系统层面需要权限
首先Linux是一款多用户的操作系统,意味着将来Linux可能会有多个用户同时登录访问,即便没有多个用户也有普通用户和root,权限的本质是为了更好的进行用户管理。 在Linux系统中每个也用户都有自己的家目录,任何时候如果没有权限的设定那么我们多用户就可以随意进入到他人的目录中对他人的文件进行增删查改,一旦在增删查改过程中给别人改错了那个人又不知道,此时就可能导致责任无法追溯无法去确定谁的问题,也就是用户又了权限可以不让你增删查改,那么你就对这个文件做不了任何事情,所以此时就不存在上面的问题了。
三 Linux系统权限相关问题(一些底层问题)
3.1权限 = 人 + 文件属性
例如在一个学校是改学校的师生可以进入,不是不可以进入。所以权限是针对特定的群体的....与人有关,权限一旦设定出来永远都是设定与对应的人群有关,永远用来限定人的,而在Linux系统中分为root用户和普通用户。
在腾讯视频上写代码,在面包店吃川菜都必须。即目标主体天然具备对应的属性,才能访问。而在Linux系统中一切皆文件,所以在Llinux中访问的目标主体之间或者间接与文件相关,即你想对文件进行操作该文件天然就具备对应的属性才行。
Linux系统中常见的固有属性:可读(r)、可写(w)、可执行(x)。
3.2Lnux系统中用户的问题
3.2.1用户相关指令
addures 用户名:创建用户
userdel -r 用户名:删除用户
passwd 用户名:给对应用户修改密码
3.2.2Linux系统中的两种用户root和普通用户
在Lnux系统中用户分为两类:root(超级管理员)、普通用户。
【两种用户的区别】
root(超级管理员):基本(99%)不受权限约束,属于Lnux系统中的特权级别。
普通用户:受权限约束
3.2.3Lnux系统中不同用户之间切换
3.2.3.1用户切换快捷键
ctrl + d 可以退回到上一次的用户。
3.2.3.2用户之间的三种切换(因为Linux中分两种用户,所以有三种切换)
【root切换到普通用户】
直接通过用户切换指令(su):su 用户名(你要跳转的用户名)即可。
这也是root是Linux系统中的特权级别的表现,不用输入用户密码就可以直接跳转
【普通用户到root用户】
方法(三种):
1)su root 后面会要你输入root账号的密码
2)直接 su后面会要你输入root账号的密码(su后面不加用户默认是root用户,因为在Linux中只有一个root用户,才得以保证其默认是root)
3)**su -**后面会要你输入root账号的密码
总结:从普通用户切换到root用户要root用户的密码,而root用户的密码只有管理员才知道,此时不就是Linux系统的管理员了吗?是的。即便是管理员也是人在Lnux系统中不能一直用root用户去访问,也有自己的普通账号,所以当它是普通账号的时候那么它就可以直接su 切换到root用户[知道root用户密码】,所以这种工作一般是管理员来做。
su root 和 su - 从普通用户切换到root用户的区别
【普通用户和普通用户之间的切换】
直接通过用户切换指令(su):su 用户名(你要跳转的用户名),后面会要你输入密码(你要切换的用户的密码)。
都是你要切换的用户的密码,你自己一般是不知道的,所以上面的一般是实现不了,那普通用户之间的转换的也有场景有什么:一个用户把自己的Linux机器忘记了的情况下,在我的Lnux机器上登录时会用到(先登上我的账号,在切换到他的账号)
【功能展示】
【总结】
在日常中的最佳实践:每个人安稳的用自己的账号,只有一个人root(超级管理员)可能在一些情况下需要改阶权限。所以笼统的来说root用户和普通用户之间可以切换,但是这种方式只有是系统的管理员才行(因为要root账号的密码,而这个账号的密码只有管理员知道)。这种方法利用的是普通账号切换成root账号,在利用root账号的特权的特性可以做很多越权的事情【以root为中间点】 。
但是如果我作为一个普通用户,想做一次提高权限的事情又不想切换成root用户。
(sudo指令的引入)
使用情况:Lnux系统是一个多用户的操作系统,多用户操作系统是多个用户都可以在Linux系统中安装软件(安装软件->拷贝到指定的目录下->此时就有权限问题系统不让普通账号拷贝)。 此时只能切换到root账号->潜台词安装软件只能由管理员来做???当然不是!!!
解决办法:让普通用户做短暂的提高权限的事情,由sudo指令实现。
Linux系统是一个多用户的操作系统,它有多种不同的人,所以你将来想正常做你的操作正常做就行了。但如果你要提高你的权限有两种选择,第一种想切换成root账号,第二种使用sudo指令。第一种适合普通人就是管理员的情况下,第二种适合普通人。
3.2.3.3sudo指令
1)sudo指令的功能
让普通账号短暂的提权一般是15分钟。
2)sudo指令的问题
为什么sudo指令输入的密码是自己的密码而不是root账号的密码(sudo是提权的此时的操作者是root为什么输入的密码不是root账号的密码)。此时输自己的密码,那不就是任何人都可以sudo把自己变成root,那对应的root账号不就形同虚设了吗?那指令输入的是root密码可行吗?如果这里输入的密码是root账号的密码,那不只能root账号才可以,所以这里输入root账号的密码也不行(和sudo指令设定的目的冲突)。
3)解决sudo指令问题的办法(sudo指令的本质)
首先系统默认情况下普通用户是不允许使用sudo指令,只有在系统的配置文件中的白名单中有对应的账号才可以使用sudo指令,而这个配置文件由root账号维护,只有root账号才可以进行更改,这不就解决了这里不是输入root账号导致root账号形同虚设的问题了。即在root账号中存在一个配置文件/etc/sudoerc,相当于Linux系统中的白名单,而这个文件由root维护(只有root账号才可以对该文件增删查改)。黑白名单:例如在进入学校时保安对于黑名单中的人直接不给进(无脑拒绝),对于白名单中的人直接给进(无脑同意),对于既不是黑名单中的人又不是白名单中的人进行排查,Linux系统中无黑白名单这里只是方便理解,root账号中存在的配置文件/etc/sudoerc相当于保安。所以默认情况下普通账号不能使用sudo指令时因为其不在白名单中。要实现普通账号可以使用sudo指令,要对配置文件/etc/sudoerc进行修改将对应的账号加入到白名单中(因为该文件时系统的配置文件,所以对于新手不建议)。但是这个白名单只有root账号有,所以在现实中想执行sudo指令要切换到root账号在更改对应的配置文件(这不就解决了root账号形同虚设的问题了),即root账号不对具体的指令进行管理它只对白名单管理【这个环节要找root账号】。


sudo指令的特点)
普通账号默认情况下不允许使用sudo指令,第一次使用sudo指令要输入对于账号的密码,同一个账号再次使用sudo指令不用输入密码(因为你第一次已经进行了短暂的提权一般时15分钟)。
sudo指令的总结)
其作用是对普通账号进短暂的提权,第一次使用sudo指令要输入对应用户的密码(不是root账号的密码),当同一个用户再次使用sudo指令是不用在输入密码(因为你第一次使用sudo指令已经进行了短暂的提权已经变成root的权限,在短暂的时间内一般是15分钟内再次使用sudo指令不用输入密码。sudo指令提权把此时的操作者变成root但是输入的密码不是root账号的,这不是让root账号形同虚设,因为sudo指令的本质是在root账号下的系统的配置文件中加入了该账号(使其变成白名单),要先切换成root账号进行配置文件,使用该账号是被root曾经线下验证过或者是root账号的朋友等等,只是让其用root密码提权,并没有把root账号密码给他,但依旧可以让其提高权限去做(因为这个人已经被root验证过了),从此把只能管理员上做的事解脱了。
3.2.4Linux角色问题

【引入】
一个人可以在腾讯视频上看电影时因为我是这个人,还是我是会员;一个校长可以自由的进出校园的任何一个地方是因为他是校长还是他是这个人。
所以权限是依附于角色的,角色决定了你的权限。
【Linux中的三种角色】
1)拥有者:文件的拥有者(创建者)
2)所属组:一个人或者几个人为一组。
为什么要有所属组?所属组是什么?例如有A和B两组张三在A组李四在B组,两组处于竞争关系。如果有一天老板想看张三写的代码要怎么实现?张三把其他的角色权限打开,此时老师虽然可以看到张三写的代码,但是B组也能看到,这不就有很多的问题。这里张三和他的组长一定在同一个组,此时张三把组的权限打开组长不就可以看到,而B组不能看到。所以组的只有(存在意义):对文件权限进行局部范围级别的管理。
3**)其他(other)**:除1和2之外的,所以在Linux系统中没有单独的一列(单独的属性)来保存其他用户,不是1或者2就是其他用户。
角色的应用:在一个用户账号进行一系列操作系统会识别对应操作下该账号用户扮演什么角色角色不同权限也不同。
角色和权限的关系:角色是需要人来扮演的(账号就是一个人)--上面的人和这里的就是不冲突两者互补,为了Linux有对应的账号,而该账号在普通文件中扮演的角色也不同。

权限=人+属性上面讲了人,下面来讲一讲文件属性的问题。
3.3文件的属性问题

**在Linux系统中常见的权限有三种可读(r)、可写(w)、可执行(x)。**而文件的拥有者、所属组、其他(other)的权限就是文件的属性。
四 权限的指令操作
4.1修改文件权限的方法
权限=人+属性,所以要修改文件的权限要么修改文件的人(文件的拥有者、所属组、其他(other));要么该特定一个文件的读写可执行权限--属性。注意要更改文件的权限(属性)只能是iwj的拥有者或者root账号(超级管理员)才行。
4.2⽂件访问权限的设置指令chmod(修改文件的属性)
4.2.1chmod语法功能
功能:设置⽂件的访问权限
格式:chmod 参数 权限 ⽂件名
4.2.2常⽤选项
|----|-------------|
| 选项 | 功能 |
| -r | 递归修改⽬录⽂件的权限 |
4.2.3chmod命令权限值的格式
•⽤⼾表⽰符+/-=权限字符
◦+:向权限范围增加权限代号所表⽰的权限
◦-:向权限范围取消权限代号所表⽰的权限
◦=:向权限范围赋予权限代号所表⽰的权限
◦⽤⼾符号:
◦u:拥有者
◦g:拥有者同组⽤
◦o:其它⽤⼾
◦a:所有⽤⼾•三位8进制数字
◦ 实例:
▪chmod 664 /home/abc.txt
▪chmod 640 /home/abc.txt
4.2.4chomd设置权限实例
【方法一 通过rwx表示权限】
格式:chmod 角色(拥有者-u、所属组-g、其他-o、) +/- 权限(可以一个也可以多个)
可以实现一个人(角色)的一个权限的设定、一个人(角色)的多个权限的设定、多个人的一个或者多个权限的设定(每个人用逗号隔开)。

【方法二 用八进制表示权限】

4.3为什么要修改权限(没有权限会有上面改变)
【没有权限的表现】

【特殊情况】
对于root账号由于其是特权级别所以不管其在文件中担任的角色是否有权限约束都没用都有权限,这也是root是Linux系统中的特权级别的表现。

4.4总结
权限是我们普通账号之间的互相的限定,root是设计者是管理员给普通账号添加权限约束的。上面在一定程度上验证了有无权限的表现,更加验证了root(超级管理员)他想变成谁就变成谁,他想对谁的文件进行操作就可以对谁的文件进行操作,所以root账号是管理员账号,他不能被轻易丢弃掉(不敢把root账号密码随便给别人)。
4.5修改权限过程中的问题
4.5.1一个用户账号在一个文件中担任多个角色,其权限是什么。

上面的test.txt文件的拥有者和所属组都是wzy账号,test.txt文件的拥有者什么权限也没用,而test.txt的所属组有读写权限,但是我们在所以wzy账号对test.txt文件进行读写时,没用权限。这间接证明了Linux系统在确定文件角色的权限时只会匹配一次,匹配方法是列表中权限对应的顺序是拥有者的权限、所属组的权限、其他(other)的权限,系统会根据用户从左往右匹配,当匹配到对应的角色是就不会在向右匹配,例如上面的wzy账号在test.txt中匹配,系统会先于test.txt的拥有者匹配,发现wzy用户就是test.txt的拥有者此时wzy账号的权限就是该文件拥有者角色的权限即无权限,即使wzy用户还是test.txt文件的所属组也不会在匹配。即用户在访问文件的时候,确定自己相当于该文件的什么身份角色,只会验证一次(权限只会被验证一次,从左往右匹配,以拥有者的身份匹配不是就继续向右匹配,反之匹配成功不会在向右匹配;如果以所属组的身份在匹配,没匹配成功就不会在向右匹配,因为不是拥有者所属组就是该文件的其他角色)。
【证明直接证明用户在访问文件的时候,确定自己相当于该文件的什么身份角色,只会验证一次】
间接证明不写上面就是。直接证明方法,我们把一个文件的拥有者和所属组弄成一个角色,一开始拥有者没用权限,而拥有者右权限,在右该文件的拥有者去访问文件发现不能读写,我们在讲文件的拥有者改成和文件的所属组不同在用文件的所属组去访问该文件发现右读写的功能。

4.5.2可执行权限
【是不是用户对于该文件右可执行权限,该用户就可以使文件运行呢?】

【文件可执行的两要素】

1该文件本身就是一个可执行文件(就好比生活中给你机会你直接不中用也不行,你有可执行权限,但文件本身不可执行也执行不了
2文件本身具有可执行权限(你是一个可执行文件,但是我就是让你不能运行你也没脾气)
即在文件中给你可执行权限是给你可执行的机会,最终能不能可执行还有看你文件本身是不是可执行文件,能执行和让你执行是两件事1相当于能执行2相当于可以执行,给你机会不中用也没办法。
赋予可执行权限的本质:赋予可执行权限,不是让你可执行,而是当你向执行我不拦你,os允许你执行,能不能执行还要看文件本身。
【细节】
只有文件的拥有者和root才能更改文件的权限
4.6chown和chgrp指令修改文件的人
4.6.1chown指令
功能:修改⽂件的拥有者
格式:chown 参数 ⽤⼾名 ⽂件名
4.6.2chgrp指令
功能:修改⽂件或⽬录的所属组
格式:chgrp 参数 ⽤⼾组名 ⽂件名
常⽤选项:-R 递归修改⽂件或⽬录的所属组
4.6.3实例
上面我们对于指令我们可以更改文件的拥有者和所属组对应的权限,但是在Linux系统中没用特点的指令来修改其他(other)的权限,但是这里的修改文件的拥有者所属组本质不就是在更改文件的其他角色的权限吗(文件的拥有者、所属组发生变化,其他角色不就也发送变化。【在日常生活中我们不认识的人不就是陌生人,但我们改变我们认识的人,不就是改变我们陌生人(对应文件中的其他角色),所以不需要单独给其他角色(other)设定指令。

4.6.4细节只有root从可以改变文件的拥有者和所属组(文件的拥有者的不行)
在前面修改文件的权限只有是文件的拥有者或者root用户都可以实现,那这里修改文件的拥有者、所属组也是不是只要是文件拥有者或者root账号就行。
【上面已经演示了root账号是可以修改文件的拥有者和所属组的,下面我们来看一看文件的拥有者行不行】

[为什么修改权限是文件的拥有者或者root账号都可以,修改文件的拥有者所属组必须是root账号】
因为在修改一个文件的权限(属性)是不影响其他人的,文件本来就是你的你想证明改就证明改,但是在更改一个文件的拥有者、所属组会影响其他人的(就好比在生活中你想把一个东西给别人要不要经过别人的同意,肯定要经别人的同意)。把一个文件给另一个人或者另一组要经过别人的"允许":所以从逻辑上文件的拥有者是不能更改文件的拥有者、所属组。那在Linux中我们获得他人的允许在输入对应的指令也没问题呀!但是在Linux系统中我们是没办法获得他人的允许,所以要实现这个功能就只有一种办法即强制性的给所以需要root超级用户的权限了(但是如果想把坏的东西给别人怎么知道是哪个人,这种情况只有使用sudo指令才行,二能使用sudo指令的用户在root对应的白名单中查就知道了)。
所以想修改文件的拥有者或者所属组只有在root账号下或者使用sudo指令才可以。
五 Linux系统中文件的类型
5.1Linux系统中文件类型的表示方法
注意在Linux系统中文件的类型补上由文件的后缀决定,通过ll指令显示文件的属性,第一列的第一个就是表示文件的类型。
5.2Linux系统中的文件类型。
-:普通文件:源代码、文本文件、动静态库、可执行文件
d:目录
l:链接文件
p:管道文件
c:字符文件 (字符设备:常见的键盘显示器【Linux中一切皆文件】键盘显示器文件的特点:在键盘上写abcd的时候自己的程序读入的一定是abcd,并且你自己输入一个单词也必须一个一个字母依次的打在显示器上,所以字符设备必须按顺序输入输出,不支持随机读写
b:块设备文件: 常见的:系统的磁盘文件特点是支持随机读写,以块为单位。
六 常见的三个问题(权限中常问的面试题)
6.1目录权限问题(想加入一个目录要什么权限)
6.1.1进入目录必须要有x权限
注意这里讲的是目录的属性(权限),和该目录下的文件的属性(权限),即目录的rwx权限的有无只会影响目录,不会影响该目录下的文件,Linux下一切皆文件,所以目录也是一个文件,而一个文件=内容+属性,目录的内容是什么,目录下放的是文件,这里我们可以假设目录的内容是文件的属性(事实只存放了文件的文件名),所以目录的权限只会影响该目录下文件的创建、删除等等,而向文件中读写由文件自身的权限决定。
【验证进入目录必须要有x权限,把一个一个权限取消依次验证即可】

【总结】
• 可执⾏权限: 如果⽬录没有可执⾏权限, 则⽆法cd到⽬录中。
•可读权限: 如果⽬录没有可读权限, 则⽆法⽤ls等命令查看⽬录中的⽂件内容。
•可写权限: 如果⽬录没有可写权限, 则⽆法在⽬录中创建⽂件, 也⽆法在⽬录中删除⽂件。
6.2umask系统的权限掩码

为什么我们新建的目录和普通文件是我们看到的样子:目录的权限是775、普通文件的权限是664为什么固定是这两个而不是别的。
首先对于目录(目录文件)的起始权限(默认权限)是从777开始的;
对于普通文件的起始权(默认权限)是从666开始的;目录和普通文件直接的起始权限是有无x权限之分对于目录没用x权限是进入不了目录的,而创建一个目录不就是为了进入目录,所以这是具有合理性的,那为什么普通文件没用x权限:x权限是可执行权限,而对于普通文件默认是不允许可执行的,因为普通文件大多是文本文件、库是不允许执行的。需要x权限自己加上即可,所以这也具有合理性。
而在Linux系统中为了对权限进行细粒度的控制,例如有时候就是要的目录(目录文件)的other其他角色的权限进行约束,你怎么能让我们新建的目录权限是777普通文件是666开始,怎么不约束其other其他角色的权限,有些目录就不应该让other其他角色进去写,所以我们就要对Linux权限进行细粒度的控制,此时就要引入Linux系统中的权限掩码(凡是出现在权限掩码中的权限,最终要在起始权限中去掉),在Linux系统中通过umask指令查看系统的权限掩码。

【新建的目录文件的最终权限的计算过程】
权限掩码是一个八进制为所对应的数,其中第一位我们不用关(通常用户、所属组等概念),后面八进制三位就是我们的权限掩码值了。
因为Linux系统中的权限掩码(凡是出现在权限掩码中的权限,最终要在起始权限中去掉)是002。所有新建一个目录或者文件的最终权限(默认权限)=起始权限 "去掉" umask(系统默认的权限掩码)
为什么我们新建的普通文件的最终权限是664:因为普通文件的起始权限是666,而系统默认的umask的权限掩码是002,666转化为八进制110 110 110 ,002转化为八进制 000 000 010 所有文件的最终权限(默认权限)=起始权限 "去掉" umask,不就是110 110 100(664)。目录的一样推。
注意新建一个目录或者文件的最终权限(默认权限)=起始权限 "去掉" umask(系统默认的权限掩码)中的去掉不是减法,这里的去掉是先让umash按位取反在和起始权限按位与运算。所有一个目录或者文件的最终权限(默认权限)=起始权限 & (~umask按位取反)

【总结】
在Linux系统中我们创建的一个普通文件、目录它的起始权限为什么是我们看到的样子:
因为系统中未目录或者文件都会有默认的起始权限其中目录是777、文件是666(都是八进制位数),在Linux系统中存在一个umask对应的权限掩码,这个权限掩码会影响我们创建文件或者目录后的起始权限,会采用按位取反+按位与的操作,
文件或者目录的最终权限=起始权限&(~umask按位取反)。
6.3权限掩码的问题
权限掩码umask的值会影响新建目录或者文件的最终权限,那我们该一下权限掩码的值不就可以改变新建目录或者文件的最终权限吗?是的。uamsk指令后面什么都不加是查看系统默认去权限掩码值。umask 后面加一个三个八进制位就是修改系统默认去权限掩码值。
【问题1】
我们自己能修改系统默认的权限掩码值,但是在改的过程中把原来系统默认的权限掩码值忘了怎么办,没事我们改umash的值是临时的,我们把软件关了在重新连接就会回到原有的系统默认值了。
【问题2】
每个人的Linux系统中的umask的值可能不同,这是正常现象。
6.4建立一个不可读不可写不可执行的文件可以删除吗
6.4.1建立一个不可读不可写不可执行的文件可以删除的验证

【结论】
在指定目录下,一个文件(可能是其他人新建的文件)【即便是root】,不让读写,但是可能我们普通用户可以删除改文件(本质:要看改文件所出的目录是否有对应权限)。
即你要在我的目录下建文件可以,但是你要受我管理,即便是root。
【在当前目录下一个root不让其读写看文件,却能把文件删除掉(这合理吗??)】
1读写文件时文件本身的权限控制的(因为你读写的是文件的内容),而删一个文件是其所出的目录的权限决定的(因为要在一个目录内部把文件的属性去掉)【技术上的合理性】
2例如你的村长把他的衣服搬到你的家里,让你不能扔掉,自己很生气别人的东西搬到我家,一气之下把其扔掉了(合理吗,肯定合理)。
现在问题根本就不是你的root新建的文件你不能读写,现在根本的问题是你的root怎么进入到我的目录下了,进到我家里面,你的root怎么一下从home到自己新建的目录下,并且在我的
目录下新建文件别人我读写,我就不读就不写我把你删了,合理吗,这不就很合理了
6.4.2粘滞位
【Linux系统是一个多用户的操作系统怎么实现普通用户之间的文件共享。】
一个人他能不能随便进入一个人的家目录(普通账号之间),肯定是不能的。
但是root可以,但是目录是自己建的,root账号是可以进入,也可以不给我们看,但是我们可以把他删掉。
【那怎么实现多用户自己进行文件共享】
1一定不会在任意用户的家目录下!!所以必须在系统级的目录下(全部由root账号维护)给对应文件的other添加对应的权限即可,因为此时不同的普通用户扮演该文件的other其他技术,即除了不同用户的家目录下的东西,其他的都是root的。
我们在系统就目录下创建一个共享文件的目录,因为是在root下创建的系统级目录,所以其目录的拥有者所属组都是root,所以其他的普通用户都是扮演other的角色,此时root给该目录的other角色设置对应的权限,不同的不同用户就可以在该目录下新建自己的文件和查看文件等操作了,但是有一个问题,我在该目录下创建的文件可以被其普通用户给删除,这合理吗(上面讲人),所以这不是真正的实现文件共享。这时候就要引入粘滞位(t权限),我们给该目录加上粘滞位(t权限),就会发现不同的用户在该目录下可以实现文件共享,并且自己创建的文件只能自己删除。这就是粘滞位的意义。
当⼀个⽬录被设置为"粘滞位"(⽤chmod +t),则该⽬录下的⽂件只能由
- 超级管理员删除
- 该⽬录的所有者删除
- 该⽂件的所有者删除
篇文章就到此结束,欢迎大家订阅我的专栏,欢迎大家指正,希望有所能帮到读者更好了解Linux相关知识,Linux基础指令就到此为止,后面我将继续更新Linux权限相关知识。觉得有帮助的还请三联支持一下~后续会不断更新Linux相关知识,我们下期再见。
