这几天温习下 Linux 基础知识,基础里面较为薄弱的知识点我会在这里记录一下,以便回头查看
Linux 下的文件除了权限属性,还有一些隐藏属性,必须使用lsattr来显示,如下所示:
1
2
|
[root@localhost ~]# lsattr test
------------- test
|
结果中第一列是 13 个短横杆,其中每一个横杆都是一个属性,如果当前位置上设置了该属性就会显示相对应的字符。
如果要设置文件的隐藏属性,需要使用chattr命令。这里介绍几个常用的隐藏属性,第一种是a属性。拥有这种属性的文件只能在尾部增加数据而不能被删除。个人觉得用于重要的日志类文件非常不错,即可以继续追加内容,又可以避免被恶意删除。
下面实例使用chattr来给该文件添加a属性并测试:
1
2
3
4
5
6
7
8
|
[root@localhost ~]# ll test
-rwxrwxrwx 1 root root 187 Dec 5 07:55 test
[root@localhost ~]# chattr +a test
[root@localhost ~]# lsattr test
-----a------- test
[root@localhost ~]# rm -rf test
rm: cannot remove `test': Operation not permitted
[root@localhost ~]#
|
如上所示,设置了a属性的文件(夹),即便权限是 777,即便是 root 用户都不能删除它,但是实际上可以以尾部新增(append)的方式继续像该文件中写入内容:
1
2
3
4
5
6
7
8
9
10
11
|
[root@localhost ~]# lsattr test
-----a------- test
[root@localhost ~]# cat test
first line
[root@localhost ~]# >test
-bash: test: Operation not permitted
[root@localhost ~]# echo second line >>test
[root@localhost ~]# cat test
first line
second line
[root@localhost ~]#
|
还有一种比较常见的属性是i属性。设置了这种属性的文件将无法写入、改名、删除,即使是 root 用户也不行。这种属性常用于设置在系统或者关键服务中的配置文件,这对提升系统安全性有很大帮助。
更多隐藏属性请使用man chattr查看。