文件和目录的默认权限与隐藏权限
umask 文件默认权限
OK!那么现在我们知道如何创建或者是改变一个目录或文件的属性了,不过,你知道当你创建一个新的文件或目录时,他的默认权限会是什么吗?呵呵!那就与 umask 这个玩意儿有关了!那么 umask 是在搞什么呢?基本上, umask 就是指定“目前使用者在创建文件或目录时候的权限默认值”
普通用户的默认权限
root管理员的默认权限
在Linux系统中,umask命令用于设置文件和目录的默认权限掩码。权限掩码是由三个数字表示的八进制数,用于屏蔽文件和目录的默认权限。umask命令的常见参数有以下几种:
- 选项 -S:以符号方式显示权限掩码。
- 选项 -p:以八进制方式显示权限掩码。
- 参数 mode:用于设置新的权限掩码。
以下是两个umask命令的例子:
- umask 0022
这个命令将权限掩码设置为0022,表示新创建的文件和目录的默认权限是644(即rw-r--r--)。
在Linux系统中,每个文件和目录都有一个默认权限掩码,用于限制其他用户对其的访问权限。umask命令可以用来设置这个默认权限掩码。
权限掩码由三个数字表示的八进制数组成,分别代表文件所有者、所属组和其他用户的权限。每个数字都是从0到7之间的数字,表示不同的权限。其中,4表示读权限(r)、2表示写权限(w)、1表示执行权限(x)。默认权限掩码通过屏蔽对应权限来限制文件和目录的默认权限。
在umask命令中,0022表示权限掩码为“拒绝其他用户写权限”。具体解释如下:
- 数字的第一个位置表示文件所有者的权限,第二个位置表示所属组的权限,第三个位置表示其他用户的权限。
- 0表示没有任何权限,2表示禁止写权限。
- 0022中的第一位为0,表示文件所有者不受权限掩码的限制。
- 0022中的第二位为0,表示所属组不受权限掩码的限制。
- 0022中的第三位为2,表示其他用户受权限掩码的限制,被拒绝写权限。
要注意的是,umask 的分数指的是“该默认值需要减掉的权限!”因为r、w、x 分别是 4、2、1 分,所以啰!也就是说,当要拿掉能写的权限,就是输入 2 分,而如果要拿掉能读的权限,也就是 4 分,那么要拿掉读与写的权限,也就是 6 分,而要拿掉执行与写入的权限,也就是 3 分,这样了解吗?请问你, 5分是什么,就是读与执行的权限啦!。
- umask -S
这个命令以符号方式显示当前的权限掩码。例如,输出结果可能是"u=rwx,g=rx,o=rx",表示新创建的文件和目录的默认权限是755(即rwxr-xr-x)。
chattr 设置文件隐藏属性
chattr命令用于改变文件或目录的扩展属性,即改变文件或目录的特殊属性。它常用于设置文件或目录的不可修改性、不可删除性等。
常用参数:
- +:添加扩展属性
- -:移除扩展属性
- =:设定扩展属性
例子1:将文件设置为只读
chattr +i file.txt
例子2:将目录设为不可修改
chattr +a /path/to/directory
这个指令是很重要的,尤其是在系统的数据安全上面!由于这些属性是隐藏的性质,所以需要以lsattr才能看到该属性呦!其中,个人认为最重要的当属 +i 与 +a 这个属性了。+i 可以让一个文件无法被更动,对于需要强烈的系统安全的人来说,真是相当的重要的!里头还有相当多的属性是需要 root 才能设置的呢!
lsattr 显示文件隐藏属性
命令名称:lsattr
作用说明:lsattr命令用于显示文件或目录的扩展属性。
参数使用:
-1:显示一行一个文件或目录。
-R:递归地显示属性。
-d:显示目录的属性,而不是目录内文件的属性。
-V:显示版本信息。
例子1:lsattr /path/to/file
该命令将显示指定文件的扩展属性。
例子2:lsattr -R /path/to/directory
该命令将递归地显示指定目录及其子目录中所有文件的扩展属性。
使用 chattr 设置后,可以利用 lsattr 来查阅隐藏的属性。不过,这两个指令在使用上必须要特别小心,否则会造成很大的困扰。例如:某天你心情好,突然将/etc/shadow 这个重要的密码记录文件给他设置成为具有 i 的属性,那么过了若干天之后,你突然要新增使用者,却一直无法新增!别怀疑,赶快去将 i的属性拿掉吧!