Linux入门真经-022文件的隐藏属性与默认权限

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/syaziou/article/details/82049165

除了我们上一节介绍的基本权限之外,Linux文件还具备一些隐藏属性。当你觉得当前文件的权限没有问题但是文件访问依然异常的时候,就可以来查一下这个文件的隐藏属性。隐藏属性对系统安全提供了一定程度的保障,今天给大家介绍如何修改和查看文件的隐藏属性。

1、chattr:设置隐藏属性

 

[root@localhost ~]# chattr [+-=][ASacdistu] 文件或目录名称
选项与参数:
:增加某一个特殊参数,其他原本存在参数则不动。
:移除某一个特殊参数,其他原本存在参数则不动。
:设置一定,且仅有后面接的参数
:存取此文件(或目录)时,他的存取时间atime 将不会被修改。
:文件将只能增加数据,而不能删除也不能修改数据,只有root 才能设置这属性
:自动的将此文件压缩。在读取的时候将会自动解压缩,在储存的时候,将会先进行压缩后再储存
:当dump 备份时忽略本文件/目录
:文件不能被删除、改名、设置链接也无法写入或新增数据!(root也不能),如果设置此属性的是目录,只能修改目录内文件的内容,而不能增删文件。只有root才能设置此属性

S:文件内容变更之后,立即同步到硬盘
:删除时用0填充该文件,无法恢复
:如果该文件被删除时,其数据内容其实还存在磁盘中,方便日后恢复
对于ext系列的文佳系统,支持上述所有选项,xfs文件系统则只支持AadiS。(什么是文件系统我们以后会专门讨论)

 

2、lsattr:显示隐藏属性

[root@localhost ~]# lsattr [-adR] 文件或目录
选项与参数:
-a :将隐藏文件的属性也秀出来;
-d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;
-R :连同子目录的数据也一并列出来

 

举例:创建文件并设置i属性,发现root用户也无法删除该文件:

 

[root@localhost ~]# touch testattr

[root@localhost ~]# chattr +i testattr

[root@localhost ~]# lsattr testattr

----i----------- testattr

[root@localhost ~]# rm testattr

rm: remove regular empty file ‘testattr’? y

rm: cannot remove ‘testattr’: Operation not permitted

[root@localhost ~]#

 

3、文件的默认权限

 

当我们创建一个文件的时候,文件是会有一个默认权限的,那么文件的默认权限是什么呢?

这取决于用户的遮罩码(umask)。

使用umask命令可以查看当前的遮罩码

 

[root@localhost ~]# umask

0022

 

这是一串八进制数,有些朋友可能会一头雾水,用户权限如果用八进制表示应该是三位呀,问什么此处只有四位数字呢。

其实,umask的正确使用姿势是这样的:

第一位数字是介绍特殊权限的,是下一节的内容,我们先不看。这样一来就只剩下三位,此处是022,但是这不是用户权限的最终结果

对于非目录文件,用666去减去umask,此处我们得到的是644,也就是默认文件权限是rw-r--r--。此处要注意的是,如果减去的结果中有奇数(执行权限),则该位加1.比如,如果umask后三位是023,666-023=643,第三位出现了执行权限,则这位数字加1,最终权限任然是644

对于目录文件,使用777去减,如末三位为022umask,默认的目录权限是754

默认root用户的umask0022,普通用户是0002

可以通过umask 数字来更改当前用户的umask(一般提供后三位即可)

 

[root@localhost ~]# umask 023

[root@localhost ~]# umask

0023

 

我们之前说过umask第一位是描述特殊权限的,那么linux文件的特殊权限有哪些呢,下一节给大家介绍

 

关注本公众号获取每日更新

猜你喜欢

转载自blog.csdn.net/syaziou/article/details/82049165