Linux chattr命令详解:修改文件系统的权限属性(转)
发布日期:2021-05-17 17:55:20 浏览次数:11 分类:精选文章

本文共 1387 字,大约阅读时间需要 4 分钟。

管理 Linux 系统中的文件和目录时,除了设置普通权限和特殊权限,你还可以利用文件和目录的隐藏属性来增强访问控制。为了修改这些隐藏属性,Linux 提供了 chattr 命令,这个命令仅限于 root 用户使用。以下是 chattr 命令的基本用法和常用属性说明。

chattr 命令基本格式

命令格式为:

chattr [±=] [属性] 文件或目录名

其中:

  • + 表示添加属性
  • - 表示移除属性
  • = 表示设定属性

常用属性及其功能

以下是 chattr 命令中常用的几个基本属性及其作用。

属性选项 功能描述
i 不可删除属性
- 文件:设置该属性后,任何用户(包括 root)都无法删除或修改该文件的内容。
- 目录:设置后,仅允许对目录内文件进行修改(追加或替换),但不允许新建或删除文件。
a 不可删除且只允许追加属性
- 文件:只能向文件中追加数据,无法删除或修改现有内容。
- 目录:允许在目录中新建和修改文件,但无法删除现有文件。
u 保留删除属性
文件或目录在被删除时,其内容会被保留,允许后期恢复。 
默认情况下,文件删除会被彻底删除,无法恢复。
s 删除时彻底删除属性
文件或目录在被删除时,内容会被彻底删除,无法恢复。

示例应用

示例 1:为文件设置不可删除属性

touch ftestchattr +i ftest

设置完成后,尝试删除文件:

rm -rf ftest

结果:rm: cannot remove 'ftest': Operation not permitted,即无法删除该文件。

示例 2:为目录设置不可删除属性

mkdir dtesttouch dtest/abcchattr +i dtest

此时,进入目录:

cd dtesttouch bed  # 输出:touch: cannot touch 'bed': Permission deniedecho 11 > abc  # 操作成功,可以修改文件内容rm -rf abc  # 输出:rm: cannot remove 'abc': Permission denied

设置 +iAttribute 后,目录不允许新建或删除文件,但允许修改现有文件内容。

示例 3:为目录设置只允许追加属性

mkdir -p /back/logchattr +a /back/logcp /var/log/messages /back/log/rm -rf /back/log/messages  # 输出:rm: cannot remove '/back/log/messages': Permission denied

设置 +aAttribute 后,备份目录不允许删除现有文件,但允许新建和修改文件。


注意事项

  • 避免误用:不要随意为系统关键目录(如 /, /dev/, /tmp/, /var/ 等)设置隐藏属性,可能导致系统无法启动。
  • 搭配使用:可以通过 lsattr 命令查看文件或目录的隐藏属性状态,确保修改后效果符合预期。
  • 谨慎操作:如果需要恢复文件或目录的隐藏属性,可以通过将 chattr中的 + 删掉,例如 chattr -i ftest

通过合理运用 chattr 命令,可以更细致地控制文件和目录的访问规则,这在系统安全和数据保护方面具有重要作用。

上一篇:linux crontab anacrontab
下一篇:Linux ACL权限设置(setfacl和getfacl)(转)

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月17日 13时50分44秒