
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
设置 +i
Attribute 后,目录不允许新建或删除文件,但允许修改现有文件内容。
示例 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
设置 +a
Attribute 后,备份目录不允许删除现有文件,但允许新建和修改文件。
注意事项
- 避免误用:不要随意为系统关键目录(如
/
,/dev/
,/tmp/
,/var/
等)设置隐藏属性,可能导致系统无法启动。 - 搭配使用:可以通过
lsattr
命令查看文件或目录的隐藏属性状态,确保修改后效果符合预期。 - 谨慎操作:如果需要恢复文件或目录的隐藏属性,可以通过将
chattr
中的+
删掉,例如chattr -i ftest
。
通过合理运用 chattr
命令,可以更细致地控制文件和目录的访问规则,这在系统安全和数据保护方面具有重要作用。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月17日 13时50分44秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C#中的类、方法和属性
2019-03-14
Python入门基础知识点讲解:输入和输出
2019-03-14
Python爬取清朝末年医书:《醉花窗医案》,看看病症情况
2019-03-14
对于电影《八佰》,知乎与豆瓣的评价相差巨大?分析下电影评论
2019-03-14
Python爬虫训练:爬取酷燃网视频数据
2019-03-14
Python新一代数据可视化神器:Plotly动画展示
2019-03-14
Python数据分析入门(十九):绘制散点图
2019-03-14
苹果a14和骁龙888哪个厉害 苹果a14相当于骁龙多少
2019-03-14
大佬谈接口自动化,我是这样做测试框架开发的……
2019-03-14
vue中常见的指令
2019-03-14
IOS——objective-c
2019-03-14
Codeforces Round #699 (Div. 2) A B
2019-03-14
PC-Lint 使用中头文件包含的问题,以及VSCode中文乱码问题
2019-03-14
备受关注的区块链技术应用领域都有哪些?
2019-03-14
关于InputStream类的available()方法
2019-03-14
图片懒加载
2019-03-14
【模拟】ZOJ Problem Set - 3490 String Successor
2019-03-14