通过10个实例掌握 linux系统 lsattr 和 chattr 命令

文章介绍了Linux系统中用于管理文件和目录特殊属性的chattr和lsattr命令,包括如何设置追加、不可变、同步等属性,以及如何防止文件被删除或更改。通过示例展示了如何保护文件和目录,确保系统关键文件的安全。
摘要由CSDN通过智能技术生成

可以在文件或目录上设置某些控制属性,以允许追加数据,防止数据被更改或删除等。例如,您可以启用关键系统文件或目录上的属性,以便任何用户 (包括 root) 都不能删除或更改它,禁止备份实用程序 (如 dump 命令) 备份特定的文件或目录,等等。这些属性只能在 ext2、ext3 或 ext4 文件系统中的文件和目录上设置。

有 lsattr 和 chattr 两个命令用于属性管理,下面是常用属性列表:

属性描述
a (append)允许对文件进行追加操作
A此属性不允许更新文件的访问时间
c (compressed)当此属性启用时,文件将自动压缩到磁盘上
d (dump)文件不能通过 dump 命令进行备份
D当此属性启用时,更改将同步存储在磁盘上
e (extent format)它显示文件正在使用区段映射磁盘上的块
i (immutable)当该属性在文件上启用时,我们不能修改,重命名和删除文件
j (journaling)当设置此属性时,文件的数据先存储在日志中,然后再写入文件
S (synchronous)设置此属性后,更改或修改将同步存储在磁盘上

chattr 命令中可使用的不同选项:

  • -R 递归地更改目录及其子目录的属性
  • -f 禁止显示大多数错误消息
  • -V 详细输出信息

用于 chattr 命令中设置和取消设置属性的操作符:

  • + 用于设置文件和目录的属性
  • - 用于删除或取消设置属性
  • = 使它们成为文件所拥有的唯一属性
chattr 命令语法:
# chattr <options> <attributes> <file or Directory >
lsattr 命令语法:
# lsattr <File or Directory>

(1) 使文件不可变

[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’: Operation not permitted

[root@linuxtechi ~]# echo "test" >> dummy_data
-bash: dummy_data: Permission denied

(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

尝试对文件追加内容

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

(4) 保护目录及其子目录

让我们创建一个目录 sysadmin 及其子目录

[root@linuxtechi ~]# mkdir sysadmin
[root@linuxtechi ~]# mkdir sysadmin/admim_{1,2,3,4,5}
[root@linuxtechi ~]# ls -l sysadmin/
total 0
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_1
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_2
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_3
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_4
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_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’: Permission denied
rm: cannot remove ‘sysadmin/admim_2’: Permission denied
rm: cannot remove ‘sysadmin/admim_3’: Permission denied
rm: cannot remove ‘sysadmin/admim_4’: Permission denied
rm: cannot remove ‘sysadmin/admim_5’: Permission denied
[root@linuxtechi ~]#

要递归地取消属性设置,请使用以下命令

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

我的开源项目

酷瓜云课堂-开源知识付费解决方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值