Linux权限(通俗易懂篇)

目录

👩‍💻用户的分类

👩‍💻用户切换

👩🏾‍💻su命令

👩🏾‍💻su -和su的区别

👩🏾‍💻sudo命令

👩‍💻文件访问者的分类(人)

👩🏾‍💻拥有者

👩🏾‍💻所属组

👩🏾‍💻其他人

👩‍💻文件类型和访问权限(事物属性)

👩🏾‍💻文件类型

👩🏻‍💻后缀的作用

👩🏾‍💻文件权限

👩🏻‍💻文件权限值的表示方法

👩🏾‍💻没有权限的现象

👩🏾‍💻权限的修改问题(一)

👩🏻‍💻拥有者(u)修改权限

👩🏻‍💻所属组(g)修改权限

👩🏻‍💻其他人(o)修改权限

👩🏻‍💻三种身份组合(a)修改权限

👩🏾‍💻权限的修改问题(二)

👩‍💻三身份遵循的规律

👩🏾‍💻chown身份更改

👩🏾‍💻每个用户指定一个权限 

👩‍💻创建文件默认权限(起始权限)

👩🏾‍💻权限掩码

👩🏾‍💻解答起始权限疑问

👩🏻‍💻普通文件

👩🏻‍💻目录文件

👩🏾‍💻修改umask

👩‍💻目录文件的rwx

👩🏾‍💻共享文件 

👩🏾‍💻粘滞位


👩‍💻用户的分类

Linux下有2种用户:超级用户,普通用户。

  • 超级用户:可以在Linux系统下做任何事情,不受限制
  • 普通用户:在Linux下做有限的事情
  • 超级用户的命令提示符是"#",普通用户的命令提示符是"$"

👩‍💻用户切换

Linux中所有的用户,都要有密码,无论是root还是其他,即便是多个普通用户,也都要设置密码

👩🏾‍💻su命令

su命令来自于英文单词“switch user”的缩写,其功能是用于切换用户身份。

管理员切换至任意用户身份而无需密码验证,而普通用户切换至任意用户身份均需密码验证

另外添加单个减号(-)参数为完全的身份变更,不保留任何之前用户的环境变量信息。su - 命令 就登录上了root用户了


👩🏾‍💻su -和su的区别

su命令 只是身份上的改变成root了,并不是登录

su - 命令 就登录上了root用户了

su命令和su -命令最大的本质区别就是:

  • 前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录
  • 后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。而用su -命令切换以后,工作目录变成root的工作目录了。

用echo $PATH命令看一下su和su -以后的环境变量有何不同。

以此类推:要从当前用户切换到其它用户也一样,应该使用su -命令。

退出直接ctrl +d


👩🏾‍💻sudo命令

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的

如果我们想暂时对一条指令进行提权 sudo command, sudo命令来自于英文词组“super user do”的缩写,中文译为“超级用户才能干的事”.

比如:普通用户没有安装tree指令,但是普通用户无法安装这个指令

  • root用户安装指令 yum install  tree 
  • 普通用户安装指令  sudo yum install  tree

sudo就是暂时对一条指令的提权,拥有超级用户的权力


👩‍💻文件访问者的分类(人)

  • 权限认证的是身份(人+身份)[权限和'人'有关]

例如:张三是个人,他是有校长的角色,所以身份是校长+人组成


👩🏾‍💻拥有者


👩🏾‍💻所属组

这个文件是自己设定的,所以我既是文件的拥有者,也是文件的所属组

便于理解:分成俩个小组,张三写了一段代码,张三是拥有者,另一组的李四想看看张三的代码,但是张三只设定了权限,拥有者只见,但是王五是张三同组成员也是领导,想看张三写的代码,但是张三只设定拥有者可见,所以这时候就引入了所属组的概念,将王五和张三都放进所属组可见,而李四是其他人不可见。

  1. 身份分成三类:拥有者,所属组,其他人
  2. 为什么出现用户角色:我们只想自己所在的组可见,又不想让其他人看见,所以设定了角色分配。

👩🏾‍💻其他人

不同于拥有者(clizyf)和所属组(clizyf)的名称都是其他人,比如zyficl用户访问拥有者和所属组,那么zyficl就是其他人。


👩‍💻文件类型和访问权限(事物属性)

  • 权限认证的是身份(人+身份)[权限和'人'有关]
  • 权限也和事物的“属性”有关

👩🏾‍💻文件类型

👩🏻‍💻后缀的作用

gcc是一款编译器,软件,不代表其他Linux系统上运行的其他软件不需要后缀。

.c文件是可执行文件,后缀不能改变,改成.txt后缀就无法编译


👩🏾‍💻文件权限

👩🏻‍💻文件权限值的表示方法

三三为一组

  • 拥有者是rwx-----可读可写可执行
  • 所属组是r-x------可读不可写可执行
  • other r-x------可读不可写可执行

  • 位置是什么含义是确定的
  • 每一个位置只有是或者否,具有指定的权限

  • 你是谁?(拥有者(u),所属组(g),其他人(o))
  • 这个文件的拥有者所属组是谁?   

  • 拥有者,所属组,other各自的权限是什么?

有关,与权限有关,对于以上3个问题是不是更加了解。


👩🏾‍💻没有权限的现象

premission denied   root用户拥有任何权限。


👩🏾‍💻权限的修改问题(一)

👩🏻‍💻拥有者(u)修改权限

chmod u+(r/w/x)        chmod u-(r/w/x)

👩🏻‍💻所属组(g)修改权限

chmod g+(r/w/x)      chmod g-(r/w/x)

👩🏻‍💻其他人(o)修改权限

👩🏻‍💻三种身份组合(a)修改权限


👩🏾‍💻权限的修改问题(二)



👩‍💻三身份遵循的规律

👩🏾‍💻chown身份更改

chown root test.txt  

chown root:root test.txt (冒号前是拥有者,冒号后所属组,将拥有者和所属组都进行了更改)


👩🏾‍💻每个用户指定一个权限 

看上面的图片,r-- rw- ---  

问:拥有者只具有读的权限,但是所属组具有读写的权限,所属组也是拥有者,为什么不能进行w的权限?

答:三种(拥有者,所属组权限,other权限)遵循一个规律:在进行认证的时候,只能选择一个角色进行认证

1.用chown将拥有者改成root用户

(如果所属组和拥有者的名称一样,那么先看拥有者的权限)

2.拥有者用户改成root,所属组用户还是clizyf,然后clizyf的文件权限是可读可写,可以完成echo。

【这就是拥有者和所属组不一样,此时clizyf不再是拥有者了,那么就只能识别第二个身份-所属组,所属组的属性是可读可写】

  • 拥有者和所属组相同,只能看 拥有者 的属性
  • 拥有者和所属组不同,如果自己不是拥有者,就看自己是否是所属组,然后确定前面的权限

每一个用户都指定一个权限


👩‍💻创建文件默认权限(起始权限)

问:

默认给普通文件的起始权限是666,默认给目录文件的起始权限是777,为什么我们看到的样子不一样.....而下图目录起始权限是775,普通文件起始权限是664?

接下来我来详细解答这个疑问?

👩🏾‍💻权限掩码

凡是在umask中出现的权限,不会再最终的文件权限中出现

👩🏾‍💻解答起始权限疑问

最终权限=起始权限&(~umask) (相同1,不同0)(~按位取反)

👩🏻‍💻普通文件

普通文件起始权限其实是666,最后显示的是664

👩🏻‍💻目录文件

目录文件起始权限其实是777,最后显示的是775


👩🏾‍💻修改umask

普通文件系统默认666,umask是0001,665


👩‍💻目录文件的rwx

  • r:是否允许我们查看指定目录下的文件内容
  • w: 是否允许我们在当前目录下进行创建,更改,删除
  • x:是否允许用户进入对应的目录

👩🏾‍💻共享文件 

  • 1.普通用户自己的家目录权限是700,我在我的家目录的文件,别人都看不到,除了root用户


  • 2.有时候,我们多个用户想进行文件数据的共享

结合以上2句:我们所建立的共享文件,不能再任何一个人的家目录下(除了root)


1.我们需要通过root用户创建一个共享目录(share)

2.虽然这个目录所属组和拥有者都是root,但是在其他人中是拥有可读(r)的权限,我们将share目录弄成777的权限, 让其他人可读可写可执行,全部公开

3.在share目录中创建test.txt,这个文件创建是clizyf,所属组和拥有者都是clizyf,然后写入内容进入test.txt

4.clizyf用户将文件权限改成600,让其他人和所属组都不可见写(rw- --- ---)

5.所以其他人和所属组都是不能写读,然后zyficl用户想给这个文件删除了,虽然zyficl用户没有对这个文件有写读的权限,但是他依旧能删除。因为他对这个目录具有写读的权限。

换句话来讲, 就是只要用户具有目录的写(w)权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.

理解:share目录是允许所有人写读权限,目录中的文件只对拥有者(clizyf)具有写读的权限,但zyficl用户依旧可以删除该目录下的文件。

这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉? 我们用下面的过程印证一下.

clizyf用户具有读写权限,但是zyficl用户没有读写权限,但是也可以进行删除目录中的文件。

为了解决这个不科学的问题, Linux引入了粘滞位的概念。


👩🏾‍💻粘滞位

chmod o+t

粘滞位:给目录设置,一般是共享目录,大家可以进行在目录中进行各自文件的增删查改,只能文件拥有者和root能删除这个文件,其他人一概不允许,t是一种特殊的x权限

ps:Linux系统自带tmp文件就是带有粘滞位的。


熬得住就出众,熬不住就出局。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值