Linux权限

116 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情


Linux权限

Linux下有两个用户:root用户和普通用户

对于root用户来说几乎没有权限限制。而普通用户受权限的限制。

当我们用命令ls -l显示该目录的内容的时候。会发现前面有一堆字符。如:

image-20220726120854709

下面我们就解释一它们的意思:

image-20220726121744737

拥有者:这个文件或者目录是谁的。

所属组:属于哪一个组。

image-20220726083908301

第一个字符:

d:表示目录。-:表示普通文件。

后面九个字符(3个为一组):r表示读权限w表示写权限x执行权限

第一组的3个:是拥有者的权限

第二组的3个:是所属组的权限

第三组的3个:是其他人的权限

  • 如何改变这三个的权限呢?

u:改变拥有者的权限

image-20220726134128543

g:改变所属组的权限

image-20220726134159186

o:改变其他人(other)的权限

image-20220726134210179

也可以用8进制的方法进行改变

image-20220726135612153

rwx:如果想让哪一位有权限就为1,不想给权限就是0。(此时的1,0为二进制的)

最后每组用8进制表示就行。

  • 改变人的权限:

chown:改变拥有者

chgrp:改变所属组

改变这些权限需要root权限。

image-20220726141212401

进入一个目录需要什么权限呢?r w x ?

答案是需要x权限。

image-20220726141841293

但是在里面创建文件需要w的权限

image-20220726142635027

目录的起始权限为777,普通文件的其实权限是666。那为什么和我们显示的不一样呢?

就是因为有umask的原因,umask中的权限都不应该在最终的权限中显示。

我的umask是0002。

image-20220726154031387

更改umask

image-20220726154307521

此时新创建的hh文件就和原来的不一样了。

那么,从上面的结果显示,最终的权限是起始权限减umask的结果吗?答案当然不是。

它是位运算。最终的权限=起始权限&(~umask)

  • 粘滞位

    我们知道,不同的用户在同一个工作目录下可以删除别人创建的目录或者文件。

    但是我们自己创建的文件不想他人删除,怎么办呢?可以设置粘滞位。chmod +t 目录名

创建一个共享目录mytmp,所以权限都放开

image-20220726155852464

我们有2个用户,分别位temp,和ML。

image-20220726160048330

从下面的图片中可以看出,在自己的工作目录下可以删除别人的文件

image-20220726160225472

加上粘滞位之后,就不可以删除别人的文件了。

image-20220726160931929

image-20220726161341769