在Linux中用chattr和lsattr命令管理文件和目录属性

简介:

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

有两个命令 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': Operation not 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 6 Apr 19 09:50 admim_1
  6. drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_2
  7. drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_3
  8. drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_4
  9. drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_5

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


 
 
  1. [root@linuxtechi ~]# chattr -R +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 -R -i sysadmin

原文发布时间为:2015-06-09
本文来自云栖社区合作伙伴“Linux中国”
目录
相关文章
|
3月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
二、Linux文本处理与文件操作核心命令
|
3月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
307 137
|
3月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
706 57
|
2月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
460 2
|
3月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
307 0
Linux内存问题排查命令详解
|
3月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
288 16
|
4月前
|
Linux 网络安全 开发工具
技术栈:这50条最常用的 Linux 命令你一定要会!
建议多在终端中实践,遇到不懂的命令就用 man 或 --help 了解详情!
537 0
|
存储 安全 Linux
深入了解Linux的`chattr`命令:文件和目录的属性修改
`chattr`命令在Linux中用于修改文件和目录的扩展属性,这些属性提供额外的保护功能,如防止误删除或修改。常用属性包括`a`(只追加)、`i`(不可修改)和`S`(即时同步)。示例包括将文件设为只追加模式和将目录设为不可修改。注意`chattr`可能阻止常规操作,使用时需谨慎,并非所有文件系统都支持。使用`lsattr`查看属性。
|
安全 Linux Shell
linux基本功系列之chattr命令
linux基本功系列之chattr命令
341 0
linux基本功系列之chattr命令
|
人工智能 Linux
如何在Linux使用 chattr 命令更改文件或目录的扩展属性?
如何在Linux使用 chattr 命令更改文件或目录的扩展属性?
333 0