Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

时间:2021-03-12 15:14:56

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

    除了基本r,w,x权限外,在Linux还可以设定其他系统隐藏属性,可以用chattr来设定,和lsattr来查看,但注意一点,CentOS 7.x当中利用xfs作为预设文件系统,但是xfs就没有支持所有的chattr的参数了。仅支持部分参数。

文件预设权限:umask

    Umask是指定目前用户在建立文件或目录时候的权限默认值,可以获取和设定umask

     Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

    上面0022中的0代表的是特殊权限,下面再说,基本权限相关的是剩下的那三个数字022.

022的意思是刨除的意思,是用户组刨除0(也就是不刨除),而组或者其他人则刨除2(w),同时文件在创建的时候还默认刨除x属性,也就是比如022 对于其他人是刨除22),再加上默认的刨除x,则最后其他人的属性是 rwx - w - x = r,最后整理得到,022默认对应的文件属性是rw-r--r-- 就是上面的a.dat

而相对于文件夹来说,没有默认刨除x的这个事,2对应的就是

Rwx - w = r-x。所以022对应的文件夹属性就是rwxr-xr-x 上面图中a.dir就是。

若使用者建立文件,则预设没有x权限,亦即只有rw这两个权限,也就是最大为666,预设权限如下:

-rw-rw-rw-

若是建立文件的话,则没有默认删除x权限的事。最大为777

drwxrwxrwx

一定要注意,umask的默认权限是排除权限的意思。同时处理权限的时候一定不能直接做减法然后去看,因为文件里面有一个默认x排除的事。同时也不要想着,如果是文件的话就直接666-umask,文件夹就777-umask,如果umask里面有x的话,666-umask会出错。

 

下面是修改umask

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

文件隐藏属性

Chattr(配置文件隐藏属性)

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

下面是演示一下chattr 中的 -i,root自己也删除不了。

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

lsattr(显示文件隐藏属性)

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

增加和查询隐藏属性

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限


文件特殊权限:SUID,SGID,SBIT

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

看到S属性和T属性了吗?之前接触的都是rwx,而那个S T属性就是特殊文件权限。

 

Set UID

s这个标志出现在文件拥有者的x权限上时,例如上面那个passwd这个文件权限的状态-rwsr-xr-x中的s,此时称为Set UID,简称SUID的特出选线,SUID权限对于文件特殊功能是:

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

    Passwd是更改密码的程序,shadow里面存的是密码,当我们作为一个非root的普通用户的时候我们依然可以更改自己的密码,也就是说我们可以操作权限为 ---------- 1 root root 的这个shadow文件,原因是passwd这个程序(文件)中有SUID的特殊权限,当执行这个passwd的时候我们就获得了文件拥有者root的权限,所以可以对shadow进行操作,有点类似与windows的内核态切换。根据经验,这种权限切换的地方很容易出现漏洞的,其他windows是这样,Linux的话刚接触没几天,并不知道相关情况。慢慢玩后期再看。


    当然因为cat没有s[SUID]权限,所以在飞root权限下无法通过cat来看shadow文件内容:

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

对于catpasswd两个中的SUID权限比较,书上有这个图:

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

同时注意。SUID只能用在binary program上,不能用在shell script上面。


Set GID

    当s标志在文件拥有者的x项目为SUID,当s在组群的x时则称为Set GID,SGID

 Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

    与SUID不同的是,SGID可以针对文件或目录来设定,如果是对文件来说,SGID有如下功能:

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

对于目录的话:

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

Sticky Bit,SBIT 目前只针对于目录有效。作用是:

当用户对于此目录具有w,x权限,亦即具有写入的权限时;

当用户在该目录下创建文件木偶目录,仅有自己与root才有权利删除该文件。

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

SUID/SGID/SBIT权限设定

4 SUID

2 SGID

1 SBIT

chmod ?---中问号就是可以设置特殊权限,后面的三个是之前提到的 u g o 的三个权限的 r w s权限设定。

设定之后如果出现大写的S T的话就是空,比如chmod 7666,这样后面666本身没有x属性,而特殊权限是建立在有x属性上的,所以就大写表示,大写表示不存在S T

观察文件类型 file

 Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

 总结:

 Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

 

    鸟哥这章里还说了文件查找,明天单独列出来一个笔记来整理,不加在这里了。