chattr
chattr +i 文件或目录 , chattr +a 文件或目录,chattr -i 文件或目录,chattr -a 文件或目录,chattr =i 文件或目录,chattr =a 文件或目录
-i 对文件的作用:对文件设置了i属性则文件只读,不能对文件内容进行修改,不可删文件,不可重命名文件,此权限限制对root也有效。
[[email protected] ~]# touch testfile [[email protected] ~]# ll 总用量 0 -rw-r--r--. 1 root root 0 8月 6 09:44 testfile 注释:默认权限644 [[email protected] ~]# echo hello>testfile 注释:可写 [[email protected] ~]# cat testfile hello [[email protected] ~]# chattr +i testfile 注释:增加i属性 [[email protected] ~]# lsattr -a testfile 注释:查看文件系统属性 ----i----------- testfile [[email protected] ~]# echo world>>testfile 注释:不可写 -bash: testfile: 权限不够 [[email protected] ~]# rm testfile 注释:不可删 rm:是否删除普通文件 "testfile"?y rm: 无法删除"testfile": 不允许的操作 [[email protected] ~]# mv testfile t 注释:不可重命名 mv: 无法将"testfile" 移动至"t": 不允许的操作 [[email protected] ~]# rm -rf testfile rm: 无法删除"testfile": 不允许的操作
-i对目录的作用:只能修改目录内已存在文件内容,不能在目录内新建、删除文件。
[[email protected] ~]# mkdir testdir [[email protected] ~]# ll -d testdir/ drwxr-xr-x. 2 root root 6 8月 6 09:57 testdir/ [[email protected] ~]# touch testdir/testfileA [[email protected] ~]# chattr +i testdir/ [[email protected] ~]# lsattr -a testdir/ ----i----------- testdir/. 注释:目录本身具有i属性 ---------------- testdir/.. ---------------- testdir/testfileA [[email protected] ~]# echo "hello world" > testdir/testfileA 注释:可对目录内已存在的文件的内容进行修改 [[email protected] ~]# cat testdir/testfileA hello world [[email protected] ~]# rm testdir/testfileA -rf 注释:不可在目录内删除文件 rm: 无法删除"testdir/testfileA": 权限不够 [[email protected] ~]# touch testdir/testfileB 注释:不可在目录内添加文件 touch: 无法创建"testdir/testfileB": 权限不够
取消-i属性:chattr -i 文件或目录
-a属性对文件的作用:只能对文件查看、增加数据,不能修改、删除数据,不能重命名、删除文件。较i属性宽松点,可以对文件追加新内容。a可理解为add
[[email protected] ~]# touch testfileA [[email protected] ~]# ll testfileA -rw-r--r--. 1 root root 0 8月 6 10:07 testfileA [[email protected] ~]# chattr +a testfileA 注释:给文件添加a属性 [[email protected] ~]# lsattr -a testfileA 注释:查看文件系统属性 -----a---------- testfileA [[email protected] ~]# echo "nihao">testfileA 注释:文件a属性不能修改文件内容 -bash: testfileA: 不允许的操作 [[email protected] ~]# echo "nihao">>testfileA 注释:文件a属性可以追加文件内容 [[email protected] ~]# cat testfileA 注释:文件a属性可能查看文件内容 nihao [[email protected] ~]# mv testfileA testfileB 注释:文件a属性不能重命名文件 mv: 无法将"testfileA" 移动至"testfileB": 不允许的操作 [[email protected] ~]# rm -rf testfileA 注释:文件a属性不能删除文件 rm: 无法删除"testfileA": 不允许的操作 [[email protected] ~]# ls testdir testfile testfileA
-a属性对目录的作用:对目录内已存在文件不能重命名、删除,可修改目录内已存在文件内容,可在目录内新建文件。
[[email protected] ~]# mkdir testdirB [[email protected] ~]# touch testdirB/testfileB [[email protected] ~]# chattr +a testdirB [[email protected] ~]# lsattr -a testdirB -----a---------- testdirB/. ---------------- testdirB/.. ---------------- testdirB/testfileB [[email protected] ~]# mv testdirB/testfileB testdirB/testfileC 注释:不能对目录内已存在文件重命名 mv: 无法将"testdirB/testfileB" 移动至"testdirB/testfileC": 不允许的操作 [[email protected] ~]# rm -rf testdirB/testfileB 注释:不能删除目录内文件 rm: 无法删除"testdirB/testfileB": 不允许的操作 [[email protected] ~]# echo "welcome China">testdirB/testfileB 注释:可修改目录内文件内容 [[email protected] ~]# cat testdirB/testfileB welcome China [[email protected] ~]# touch testdirB/testfileC 注释:可在目录内新建文件 [[email protected] ~]#
总结:i属性为只读,a属性为追加。
时间: 2024-10-27 11:52:29