Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限
Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限
除了基本r,w,x权限外,在Linux还可以设定其他系统隐藏属性,可以用chattr来设定,和lsattr来查看,但注意一点,CentOS 7.x当中利用xfs作为预设文件系统,但是xfs就没有支持所有的chattr的参数了。仅支持部分参数。
文件预设权限:umask
Umask是指定目前用户在建立文件或目录时候的权限默认值,可以获取和设定umask。
上面0022中的0代表的是特殊权限,下面再说,基本权限相关的是剩下的那三个数字022.
022的意思是刨除的意思,是用户组刨除0(也就是不刨除),而组或者其他人则刨除2(w),同时文件在创建的时候还默认刨除x属性,也就是比如022 对于其他人是刨除2(2),再加上默认的刨除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
文件隐藏属性
Chattr(配置文件隐藏属性)
下面是演示一下chattr 中的 -i,root自己也删除不了。
lsattr(显示文件隐藏属性)
增加和查询隐藏属性
文件特殊权限:SUID,SGID,SBIT
看到S属性和T属性了吗?之前接触的都是rwx,而那个S T属性就是特殊文件权限。
Set UID
当s这个标志出现在文件拥有者的x权限上时,例如上面那个passwd这个文件权限的状态-rwsr-xr-x中的s,此时称为Set UID,简称SUID的特出选线,SUID权限对于文件特殊功能是:
Passwd是更改密码的程序,shadow里面存的是密码,当我们作为一个非root的普通用户的时候我们依然可以更改自己的密码,也就是说我们可以操作权限为 ---------- 1 root root 的这个shadow文件,原因是passwd这个程序(文件)中有SUID的特殊权限,当执行这个passwd的时候我们就获得了文件拥有者root的权限,所以可以对shadow进行操作,有点类似与windows的内核态切换。根据经验,这种权限切换的地方很容易出现漏洞的,其他windows是这样,Linux的话刚接触没几天,并不知道相关情况。慢慢玩后期再看。
当然因为cat没有s[SUID]权限,所以在飞root权限下无法通过cat来看shadow文件内容:
对于cat和passwd两个中的SUID权限比较,书上有这个图:
同时注意。SUID只能用在binary program上,不能用在shell script上面。
Set GID
当s标志在文件拥有者的x项目为SUID,当s在组群的x时则称为Set GID,SGID。
与SUID不同的是,SGID可以针对文件或目录来设定,如果是对文件来说,SGID有如下功能:
对于目录的话:
Sticky Bit,SBIT 目前只针对于目录有效。作用是:
当用户对于此目录具有w,x权限,亦即具有写入的权限时;
当用户在该目录下创建文件木偶目录,仅有自己与root才有权利删除该文件。
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 根据时间删除某个目录下的文件
- linux文件组、权限等
- 重新点亮linux 命令树————文件权限和目录权限[九]
- Linux下用户组、文件权限详解
- linux md5sum获取文件指纹数值并使用cut切割
- linux如何查看系统占用磁盘空间最大的文件及让文件按大小排序
- Linux在什么样的从脚本文件数据库sh格式改变sql格式
- L36.linux命令每日一练 -- 第五章 Linux信息显示与搜索文件命令 -- locate和updatedb
- L17.linux命令每日一练 -- 第三章 文件过滤及内容编辑处理命令 -- more和less命令
- Linux基础命令-cp拷贝文件
- 【Linux】linux经常使用基本命令
- Linux 的文件权限和目录配置
- linux奇怪的知识---文件描述符,pid,inode,ulimit和它们之间的关系
- Linux基本命令行操作之移动文件
- linux给文件加可执行权限
- Linux---文件特殊权限
- VScode Remote-SSH远程编辑和调试Linux文件代码
- Linux文件权限设置
- 【看表情包学Linux】Redirect 重定向 | 时间相关指令 | 文件查找 | 打包与压缩
- 使用wget批量下载geo数据集的全部文件 linux下载geo数据 geo处理的数据不是下载原始数据 Linux如何下载ftp文件 geo ftp geo ftp下载 geo下载