《鸟哥的Linux私房菜 基础学习篇(第三版)》 7.4.2 读书笔记
显然,这里要说的并不是rwx那9个权限,而是要聊chattr和lsattr这两个命令。这两个命令在只能在Ext2/Ext3的文件系统上面生效,其他文件系统可能就无法支持了。
chattr 设置文件的隐藏属性
#chattr [+-=] [ASacdistu] 文件或目录
参数:
+ :增加某一个特殊参数,其他原本存在参数则不动
- :删除某一个特殊参数,其他原本存在参数则不动
= :仅有后面的参数
A :设置了A这个属性时,此文件(或目录)的访问时间atime将不会被修改。可避免I/O较慢的机器过度访问磁盘。
S :一般文件是异步格式写入磁盘的,如果加上S这个属性时,对文件进行任何修改,将会“同步”写入磁盘中。
a :设置a之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root才能设置这个属性。
c :这个属性设置之后,讲会自动将此文件压缩,在读取的时候会自动解压缩,但是在存储的时候,将会先进行压缩后再存储。
d :当dump程序被执行的时候,设置d属性将可使该文件(或目录)不会被dump备份。
i :它可以让一个文件不能被删除、改名,设置连接也无法写入或添加数据。只有root才能设置这个属性。
s :当文件设置了s属性时,如果这个文件被删除,它将会被完全从这个硬盘空间中删除。
u :与s相反,当使用u来配置文件时,如果该文件被删除了,则数据内容其实还存在磁盘中。
lsattr 显示文件隐藏属性
#lsattr [-adR] 文件或目录
参数:
-a :将隐藏属性也显示出来
-d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名
-R :连同子目录的数据也一并列出
dahu@dahu-OptiPlex-3046:~/myfile/mulu$ sudo chattr +a tt [sudo] password for dahu: dahu@dahu-OptiPlex-3046:~/myfile/mulu$ ls s tt x dahu@dahu-OptiPlex-3046:~/myfile/mulu$ cat tt hehe dahu@dahu-OptiPlex-3046:~/myfile/mulu$ echo "lala" >> tt dahu@dahu-OptiPlex-3046:~/myfile/mulu$ cat tt hehe lala dahu@dahu-OptiPlex-3046:~/myfile/mulu$ sed -i '/la/d' tt #sed已经删除不了东西了,只能往里添加 sed: cannot rename ./sed4Y3oYW: Operation not permitted dahu@dahu-OptiPlex-3046:~/myfile/mulu$ cat tt hehe lala dahu@dahu-OptiPlex-3046:~/myfile/mulu$ lsattr #查看隐藏属性 -------------e-- ./x -----a-------e-- ./tt -------------e-- ./s