本文共 1387 字,大约阅读时间需要 4 分钟。
管理 Linux 系统中的文件和目录时,除了设置普通权限和特殊权限,你还可以利用文件和目录的隐藏属性来增强访问控制。为了修改这些隐藏属性,Linux 提供了 chattr
命令,这个命令仅限于 root 用户使用。以下是 chattr
命令的基本用法和常用属性说明。
chattr
命令基本格式命令格式为:
chattr [±=] [属性] 文件或目录名
其中:
+
表示添加属性-
表示移除属性=
表示设定属性以下是 chattr
命令中常用的几个基本属性及其作用。
属性选项 | 功能描述 |
---|---|
i | 不可删除属性: - 文件:设置该属性后,任何用户(包括 root)都无法删除或修改该文件的内容。 - 目录:设置后,仅允许对目录内文件进行修改(追加或替换),但不允许新建或删除文件。 |
a | 不可删除且只允许追加属性: - 文件:只能向文件中追加数据,无法删除或修改现有内容。 - 目录:允许在目录中新建和修改文件,但无法删除现有文件。 |
u | 保留删除属性:文件或目录在被删除时,其内容会被保留,允许后期恢复。 默认情况下,文件删除会被彻底删除,无法恢复。 |
s | 删除时彻底删除属性:文件或目录在被删除时,内容会被彻底删除,无法恢复。 |
touch ftestchattr +i ftest
设置完成后,尝试删除文件:
rm -rf ftest
结果:rm: cannot remove 'ftest': Operation not permitted
,即无法删除该文件。
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
设置 +i
Attribute 后,目录不允许新建或删除文件,但允许修改现有文件内容。
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
设置 +a
Attribute 后,备份目录不允许删除现有文件,但允许新建和修改文件。
/
, /dev/
, /tmp/
, /var/
等)设置隐藏属性,可能导致系统无法启动。lsattr
命令查看文件或目录的隐藏属性状态,确保修改后效果符合预期。chattr
中的 +
删掉,例如 chattr -i ftest
。通过合理运用 chattr
命令,可以更细致地控制文件和目录的访问规则,这在系统安全和数据保护方面具有重要作用。
转载地址:http://mvwlz.baihongyu.com/