linux目录下无法执行chattr,在Linux中用chattr和lsattr命令管理文件和目录属性

为了允许添加数据,防止更改或者删除等,文件和文件夹可以设定了特定的控制属性。例如,你可以在关键的系统文件或者文件夹中启用属性,然后没有任何用户,包括root,可以删除或者修改它,比如不允许使用像dump这样的命令等备份工具去备份一个特定的文件或者文件夹,等等。这些属性只可以在ext2,ext3或者ext4文件系统中的文件和文件夹上设定。

linux目录下无法执行chattr,在Linux中用chattr和lsattr命令管理文件和目录属性_第1张图片

有两个命令 lsattr 和 chattr 用来管理属性。下面是常用属性的列表。

属性

描述

a (append)

允许在文件中进行追加操作

A

这个属性不允许更新文件的访问时间

c (compressed)

启用这个属性时,文件在磁盘上会自动压缩

d (dump)

不能使用dump命令备份文件

D

设置了文件夹的D属性时,更改会在同步保存在磁盘上

e (extent format)

它表明,该文件使用磁盘上的块的映射扩展

i (immutable)

在文件上启用这个属性时,我们不能更改、重命名或者删除这个文件

j (journaling)

设置了这个属性时,文件的数据首先保存在日志中,然后再写入文件

S (synchronous)

设置了这个属性时,变更或更改同步保存到磁盘上

chattr属性中可以使用的不同选项 :

-R 递归地修改文件夹和子文件夹的属性

-V chattr命令会输出带有版本信息的冗余信息

-f 忽略大部分错误信息

在chattr中用于设置或者取消属性的 操作符

'+' 符号用来为文件和文件夹设置属性,

'-' 符号用来移除或者取消属性

'=' 使它们成为文件有的唯一属性。

chattr 和 lsattr 命令的基本语法 :

# chattr

# lsattr

例:1 使用‘i’属性使文件不可更改

[root@linuxtechi~]#chattr+i dummy_data

[root@linuxtechi~]#lsattr dummy_data

----i-----------dummy_data

现在试着删除或者修改文件

[root@linuxtechi~]#rm-f dummy_data

rm:cannot remove'dummy_data':Operationnotpermitted

[root@linuxtechi~]#echo"test">>dummy_data

-bash:dummy_data:Permissiondenied

例:2 移除不可更改属性

[root@linuxtechi~]#chattr-i dummy_data

[root@linuxtechi~]#lsattr dummy_data

----------------dummy_data

例:3 在文件中只允许追加操作

[root@linuxtechi~]#chattr+a dummy_data

[root@linuxtechi~]#lsattr dummy_data

-----a----------dummy_data

现在试着把fstab文件的内容追加到dummy_data文件

[root@linuxtechi~]#cat/etc/fstab>>dummy_data

[root@linuxtechi~]#

例 :4 使用 -R 选项和 ‘+i’ 属性使文件夹和它的子文件夹成为安全目录

让我们来新建一个sysadmin文件夹和它的子文件夹

[root@linuxtechi~]#mkdir sysadmin

[root@linuxtechi~]#mkdir sysadmin/admim_{1,2,3,4,5}

[root@linuxtechi~]#ls-l sysadmin/

total0

drwxr-xr-x.2root root6Apr1909:50admim_1

drwxr-xr-x.2root root6Apr1909:50admim_2

drwxr-xr-x.2root root6Apr1909:50admim_3

drwxr-xr-x.2root root6Apr1909:50admim_4

drwxr-xr-x.2root root6Apr1909:50admim_5

在sysadmin文件夹递归设置不可更改属性

[root@linuxtechi~]#chattr-R+i sysadmin

[root@linuxtechi~]#lsattr-R sysadmin/

----i-----------sysadmin/admim_1

sysadmin/admim_1:

----i-----------sysadmin/admim_2

sysadmin/admim_2:

----i-----------sysadmin/admim_3

sysadmin/admim_3:

----i-----------sysadmin/admim_4

sysadmin/admim_4:

----i-----------sysadmin/admim_5

sysadmin/admim_5:

[root@linuxtechi~]#

现在试着用rm命令删除文件夹

[root@linuxtechi~]#rm-rf sysadmin

rm:cannot remove‘sysadmin/admim_1’:Permissiondenied

rm:cannot remove‘sysadmin/admim_2’:Permissiondenied

rm:cannot remove‘sysadmin/admim_3’:Permissiondenied

rm:cannot remove‘sysadmin/admim_4’:Permissiondenied

rm:cannot remove‘sysadmin/admim_5’:Permissiondenied

[root@linuxtechi~]#

使用以下命令递归取消属性

[root@linuxtechi~]#chattr-R-i sysadmin

本文由 LCTT 原创翻译,Linux中国 荣誉推出

0b1331709591d260c1c78e86d0c51c18.png

你可能感兴趣的:(linux目录下无法执行chattr,在Linux中用chattr和lsattr命令管理文件和目录属性)