> 文章列表 > Linux文件权限

Linux文件权限

Linux文件权限

在linux操作系统某个目录下输入指令 ll

这里的第一列就是不同用户对文件权限。前面的d是文件类型的意思,今天我们不谈论这个。

每三个字母为一组,那么class1文件夹的rwx为第一组,r-x 为第二组 另3个r-x为第三组,

这里第一组为所有者权限,第二组为所属组权限,第三组为其他人权限

rwx

r:这里的意思是读权限,没有这个权限就无法看到目录里的大小,哪怕进得去目录也看不见里面的东西

我们将拥有者的读权限取消,然后发现无法ls class1 但是我们可以进入该目录,但是在该目录下仍然无法查看文件。


W:这里的意思是写权限,进入目录后如果没有该权限,就无法在该文件下写入或删除。

class1 拥有者失去w权限 ,我们想要删除目录下a。out 和创建1.txt都是被拒绝的。


X:这里的意思是执行权限,没有这个权限就无法进入目录,但是可以在上一级目录看看里面的东西,但是只能看见该目录下的文件名字。

 

  这里我们对class1加上r权限,删除x权限,会发现,我无法进入class1目录,但是我可以在父目录下查看class1下的文件,但是只能看到文件名字,其他东西都看不见了。


权限掩码

我们创建一个文件夹和一个普通文件

 看test与_test.txt的权限,抛出疑问为什么权限是这样的呢?

在linux系统中任何文件/目录都有一定的权限,对于新创建的文件或目录,也会有默认的访问权限。可能是出于安全的考虑,linux系统新建文件默认没有执行权限,新建文件其最大权限为rw-rw-rw-(666),新建目录的最大权限为rwx-rwx-rwx(777)。而默认的权限与umask命令有关。

什么是umask呢?他是在文件或者文件夹创建的时候,限制权限的,文件夹rwxrwxrwx改编为rwxrwxr-x,然我们看看umask默认值

 他是怎么掩盖文件权限的呢?

两个理解 1:将777&(~uamsk)   

                2:另一个777-002  这里都是7-0 7-0 7-2 位减位,不够减不借位直接等于0;

这里的umask 002可以被修改 在umask后面加上修改数值(八进制3位)。

但是不建议改变,毕竟别人佬们设置的初始化掩码值就是优秀的,如果先改变文件权限可以创建后使用chmod改变权限。

有个疑问,那么文件怎么会找到谁是拥有者,谁是所属组,谁是其他人呢

这里的第一个lss就是所有者,第二个zjy所属组,对应的是当前用户名字,那还有个其他人呢?这里不是这两个名字的用户就是其他人。

 这个时候我们作为所属组zjy是无法修改class1的如何权限的

粘滞位

都是其他人的情况下,在一个文件夹中想写入和删除文件时必须要有写的权限,但是又不能让他删除别人的文件,这个时候粘滞位的概念出现了,粘滞位保证了,其他人在目录下只能对自己创建的文件实行写权限操作,不能删除和修改他人文件。

在这里我们给class2设置了粘滞位,这样其他用户在该文件夹中只能对自己的文件进行写权限,

 用户能否删除别人的文件,不是由文件权限决定的,而是由这个文件所处目录的权限决定的


这个权限有个上帝视角,他可以无视使用权限要求,无视任何限制,他就是root超级管理者。