文件的默认权限:umask
当新创建一个文件或目录的时候,一般情况先时候默认权限的,而在默认权限的分配上,文件与目录是有些不大相同的。
之前的学习中我们了解到过权限一般分为r、w、x三种,建立一个文件的时候默认是没有x的权限的,所以一个文件的最大权限为-rw-rw-rw-,也就是最大为666;一个目录,因为x属性与是否能够进入目录有关,所以x权限是肯定要有的,所以一个目录的最大权限为drwxrwxrwx,也就是最大为777。
而在linux系统中还有一个与默认权限有关的东西:umask。umask代表默认权限需要减掉的权限。这个属性我们可以用umask或umask -s来查看,不加-s属性时候看到的是一个数字,加上-s属性的时候则是看到的比较具体的每中访问方式所对应的权限。
接下来我们看一下新建文件或目录的相应权限:
上面我们说的文件和目录的默认权限分别为-rw-rw-rw-和drwxrwxrwx,但是我们新建的文件和目录的权限分别为-rw-r–r–和drwxr-xr-x,中间有一些小小的偏差,这个偏差就与umask有关了。
umask的定义:默认权限需要减掉的权限,也就是在相应默认权限的基础上减掉umask设置的权限。以上图为例,umask设置的为0022,第一位数字0表示八进制数,第二位数字0表示拥有者owner的权限不需要减去,第三位数字2表示用户组group的权限需要减去w,第四位数字2表示其他人other的权限需要减去w,所以
值得注意的一点是,umask显示的0022,我们需要把它解读为响应的权限之后再进行减掉的操作,如果用数字去减就会出现一定的问题,比如,如果设置uamsk为0033,文件的默认权限666,666 - 033 = 633 ,那么633对应的去权限是-rw–wx-wx,666对应的权限是-rw-rw-rw-,减之前没有x权限,减之后却出现了x权限,所以单纯的计算,不要用数字直接去减。
umask的数字我们也可以通过命令来设置,比如:umask 002,就可以将umask的值设置为002了,之前也说过第一个数字代表的是八进制数,所以是系统默认,只需要设置后三个数就可以了,你也可以输入四个数:0022,但是必须保证第一位是0,如果第一位不是0,那么就会报一个错误:
这个错误的原因是linux在读取数字的时候把1022分解为10,2,2三个八进制数,所以就出现了上面的错误:八进制数超出范围。文件的隐藏属性
文件的隐藏属性对系统有很大帮助,尤其是系统安全性方面非常重要。
①、设置文件隐藏属性:chattr
②、显示文件隐藏属性:lsattr- 文件的特殊权限
①、SUID(set user id)
任意用户访问文件时暂时获得文件拥有者的权限。
②SGID(set group id)
③SBIT(sticky bit)
④SUID、SGID、SBIT权限设置
这三个特殊属性的设置也是用chmod命令进行设置,通常使用chmod + 三位数字 +文件名 的命令是假设没有以上三个特殊属性的,而想要设置这三个属性,需要在三个数字的前面再加一个数字就行了,这个数字的算法是这样的:
一个小小的列子:
相关文章
- Linux学习-03-文件与目录的权限-1
- linux下创建文件与目录时默认被赋予了什么样的权限?
- Linux中的默认权限与隐藏权限(文件、目录)
- Linux之文件(目录)默认权限、特殊权限与隐藏权限
- linux 文件的默认权限,隐藏权限和特殊权限
- Linux之文件(目录)默认权限、特殊权限与隐藏权限
- Linux 学习笔记分享: Linux 用户组的权限: drwx------ 700权限(d 目录 ,r=4,w=2,x=1:rwx=7;---=0;---=0)
- 一天一点学习Linux之文件与目录权限的基本概念【对工作目录(即当前目录)的说明】
- 文件与目录的默认权限与隐藏权限
- Linux之文件(目录)默认权限、特殊权限与隐藏权限