Linux基础——chattr 文件或者目录的隐藏属性

a或者i 选项都可以作用于文件和目录,作用于文件,a可以追加重定向,i什么都不可以做。作用于目录,a 可以增加文件,不可以删除,可以对目录内的文件进行重定向;i作用于目录,不能增加,不能删除,可以对目录内的文件进行重定向。
由此得出结论,目录内的文件是否有权限删除,取决于其所在目录的权限。

#lsattr == ls attribution 列出当前目录下文件和目录的特殊属性
语法 lsattr [-aR] [文件/目录名]
R
#lsattr -R 【列出当前目录下的子目录和文件,以及所有下级目录和文件,类似tree的功能,】
#lsattr 1.txt
------------- e- 1.txt 【e表示ext4,ext3文件系统特有的属性】
d
#mkdir -p 1/2/3/4
#lsattr -d 1 【只查看当前目录的隐藏属性】
#lsattr -aR test   把隐藏,子目录的数据一同列出

#chattr == change attribution 更改属性
语法 chattr [+-=] [Asaci] [文件/目录名]
a
#chattr +a 1.txt 【1.txt不可以被修改、删除、重命名、重定向,只能追加重定向】
#echo "111111">>1.txt
#ls -l 1.txt
----- a-------e- 1.txt
#chattr -a 1.txt 【移除1.txt的a属性】
NOTE:非root用户,不能执行增加/移除 a 属性的命令

i [与 a 的区别在于,a 可以执行追加重定向;可作用于目录和文件]
#chattr +i 1.txt 【不能追加、删除、修改、移动、重定向、追加重定向、更改组;什么都不行】
#chattr -i 1.txt 【移除 i 属性】

例子:
#mkdir -p 1/2/3/4/5
#touch 1/2/3/3.txt 1/2/3/4/5/5.txt
#chattr +a 1/2/3/3.txt
#chattr +i 1/2/3/4/5/5.txt
...........
#rm -rf 1
rm: 无法删除"1/2/3/4/5/5.txt": 不允许的操作
rm: 无法删除"1/2/3/3.txt": 不允许的操作
【root用户下若出现不允许或没有权限,则考虑是否有i或者a权限】
#lsattr -R 1 【利用 -R 级联选项,一个命令就可找出问题所在】
-------------e- 1/2

1/2:
-------------e- 1/2/3

1/2/3:
-------------e- 1/2/3/4

1/2/3/4:
-------------e- 1/2/3/4/5

1/2/3/4/5:
----i--------e- 1/2/3/4/5/5.txt


-----a-------e- 1/2/3/3.txt



出现下列提示时,考虑是否有a或者i选项的存在。
重定向提示:不允许的操作 【尝试追加重定向,如果">>"可行,则说明存在a选项】
追加重定向提示:权限不够 【存在隐藏属性i】

删除空目录提示:不允许的操作 【隐藏属性i】
删除空目录提示:不允许的操作 【隐藏属性a】

删除非空目录提示:权限不够 【隐藏属性i】
删除非空目录提示:不允许的操作 【隐藏属性a】

删除文件提示:不允许的操作 【隐藏属性a、i】


你可能感兴趣的:(Linux基础)