linux chattr 用法示例 修改文件属性

1、用chattr命令防止系统中某个关键文件被修改:
# chattr +i /etc/resolv.conf

然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted 的结果。vim编辑该文件时会提示W10: Warning: Changing a readonly file错误。要想修改此文件就要把i属性去掉: chattr -i /etc/resolv.conf

# lsattr /etc/resolv.conf
会显示如下属性
----i-------- /etc/resolv.conf

2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
# chattr +a /var/log/messages

详解::

有两个命令 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 命令的基本语法 :

  1. # chattr <options> <attributes> <file or Directory >
  2. # lsattr <File or Directory>
例:1 使用‘i’属性使文件不可更改
  1. [root@linuxtechi ~]# chattr +i dummy_data
  2. [root@linuxtechi ~]# lsattr dummy_data
  3. ----i----------- dummy_data

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

  1. [root@linuxtechi ~]# rm -f dummy_data
  2. rm: cannot remove 'dummy_data':Operationnot permitted
  3. [root@linuxtechi ~]# echo "test">> dummy_data
  4. -bash: dummy_data:Permission denied

 

例:2 移除不可更改属性
  1. [root@linuxtechi ~]# chattr -i dummy_data
  2. [root@linuxtechi ~]# lsattr dummy_data
  3. ---------------- dummy_data

 

例:3 在文件中只允许追加操作
  1. [root@linuxtechi ~]# chattr +a dummy_data
  2. [root@linuxtechi ~]# lsattr dummy_data
  3. -----a---------- dummy_data

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

  1. [root@linuxtechi ~]# cat /etc/fstab >> dummy_data
  2. [root@linuxtechi ~]#
例 :4 使用 -R 选项和 ‘+i’ 属性使文件夹和它的子文件夹成为安全目录

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

  1. [root@linuxtechi ~]# mkdir sysadmin
  2. [root@linuxtechi ~]# mkdir sysadmin/admim_{1,2,3,4,5}
  3. [root@linuxtechi ~]# ls -l sysadmin/
  4. total 0
  5. drwxr-xr-x.2 root root 6Apr1909:50 admim_1
  6. drwxr-xr-x.2 root root 6Apr1909:50 admim_2
  7. drwxr-xr-x.2 root root 6Apr1909:50 admim_3
  8. drwxr-xr-x.2 root root 6Apr1909:50 admim_4
  9. drwxr-xr-x.2 root root 6Apr1909:50 admim_5

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

  1. [root@linuxtechi ~]# chattr -+i sysadmin
  2. [root@linuxtechi ~]# lsattr -R sysadmin/
  3. ----i----------- sysadmin/admim_1
  4. sysadmin/admim_1:
  5. ----i----------- sysadmin/admim_2
  6. sysadmin/admim_2:
  7. ----i----------- sysadmin/admim_3
  8. sysadmin/admim_3:
  9. ----i----------- sysadmin/admim_4
  10. sysadmin/admim_4:
  11. ----i----------- sysadmin/admim_5
  12. sysadmin/admim_5:
  13. [root@linuxtechi ~]#

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

  1. [root@linuxtechi ~]# rm -rf sysadmin
  2. rm: cannot remove sysadmin/admim_1’:Permission denied
  3. rm: cannot remove sysadmin/admim_2’:Permission denied
  4. rm: cannot remove sysadmin/admim_3’:Permission denied
  5. rm: cannot remove sysadmin/admim_4’:Permission denied
  6. rm: cannot remove sysadmin/admim_5’:Permission denied
  7. [root@linuxtechi ~]#

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

  1. [root@linuxtechi ~]# chattr --i sysadmin

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值