『学了就忘』Linux权限管理 — 56、不可改变位权限(chattr)
2024-09-07 19:19:54
文件系统属性chattr
权限,也叫不可改变位权限,该权限没有风险,但是他能限制root
用户。
1、命令格式
[root@localhost ~]# chattr [+-=] [选项] 文件或目录名
选项
+
:增加权限。-
:删除权限。=
:等于某权限。(不常用)i
:如果对文件设置i
属性,那么不允许对文件进行删除、改名,也不能添加和修改数据(也就是文件不能做任何修改,相当于把文件加了一把锁,包括root
在内都不行。);如果对目录设置i
属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。a
:如果对文件设置a
属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置a
属性,那么只允许在目录中建立和修改文件,但是不允许删除。e
:Linux中绝大多数的文件都默认拥有e
属性。表示该文件是使用ext
文件系统进行字储的,而且不能使用chattr -e
命令取消e
属性。
提示:常用的就是
i
和a
属性。
2、查看文件系统属性chattr权限
# 给abc文件加入i属性
[root@localhost ~]# chattr +i abc
# ll命令是查看不到任何结果的,这点比较不好。
[root@localhost ~]# ll abc
rw-r--r-.1 root root 0 2月 19 13:08 abc
如果需要查看chattr
权限,需要用如下命令:
[rootelocalhost ~]# chattr [选项] 文件名
选项:
-a
:显示所有文件和目录。-d
:若目标是目录,仅列出目录本身的属性,而不是子文件的。
[root@localhost ~]# chattr abc
----i--------e- abc
注意:带~
表示临时文件,和Windows系统的word的临时文件差不多一个意思。直接rm
删除就可以了。
如下图所示:
3、示例
例1:给文件赋予chattr
权限的i
属性。
# 建立测试文件,给文件赋予i属性
[root@localhost ~]# touch ftest
[root@localhost ~]# chattr +i ftest
# 赋予i属性后,root也不能删除
[root@localhost ~]# rm -rf ftest
rm:无法删除"ftest":不允许的操作
# 也不能修改文件的数据
[root@localhost ~]# echo 111 >> ftest
-bash:ftest:权限不够
例2:给目录赋予chattr
权限的i
属性。
# 建立测试目录给
[root@localhost ~]# mkdir dtest
# 再建立一个测试文件abc
[root@localhost dtest]# touch dtest/abc
# 给目录赋予i属性
[root@localhost ~]# chattr +i dtest/
# dtest目录不能新建文件
[root@localhost ~]# cd dtest/
[root@localhost dtest] # touch bcd
touch:无法创建"bcd":权限不够
# 但是可以修改文件内容
[root@localhost dtest]# echo 1111 >> abc
[root@localhost dtest]# cat abc
1111
# 不能删除目录内文件
[root@localhost dtest]# rm -rf abc
rm:无法删除"abc":权限不够
例3:测试chattr
权限的a
属性。
# 给abc文件赋予a属性
[root@localhost ~]# chattr +a abc
# 向abc文件中追加内容
# 注意一定不能用vim编辑器,用vim编辑器编辑内容不能保存。
[root@localhost ~]# echo aaaaaaaaaaaaaaaaaaaaaa >> abc
[root@localhost ~]# cat abc
aaaaaaaaaaaaaaaaaaaaaa
# 可以复制文件和新建文件到指定目录
[root@localhost ~]# cp /var/log/messages /back/log/
# 但是不允许删除文件
[root@localhost ~]# rm -rf abc
rm:无法删除"/back/1og/messages":不允许的操作
最新文章
- 解决ViewPager多次刷新后重叠问题
- JS通过身份证号码获取出生年月日
- 搭建WP8开发环境
- vi 命令行模式功能键
- 第九章、文件与文件系统的压缩与打包 3. 打包命令: tar
- 关于.NET三层 分类: C#
- oracle事务和锁
- 前端js优化方案(连续更新)
- 38.Linux驱动调试-根据系统时钟定位出错位置
- 【Alpha 阶段】后期测试及补充(第十一、十二周)
- [四]基础数据概述之Byte详解
- js 页面history.back()返回上一页,ios 不重新加载ready的解决办法
- Apache Arrow
- IDEA 破解_补丁永久_2018.3
- spring的事务操作(重点)
- mysql 5.5.x zip直接解压版 报1076
- [BUG] python实例化N次类,调用类函数log会输出N遍的bug 解决办法
- 什么场景应该用 MongoDB(转)
- C#的Lambda 表达式都使用 Lambda 运算符 =>;,该运算符读为“goes to”。语法如下:
- ubuntu14.04安装CUDA8.0
热门文章
- C语言教你写个‘浪漫烟花‘---特别漂亮
- 攻防世界 杂项 9.a_good_idea
- AVL树的插入和删除
- 《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
- Linux修改bashrc
- linux下文件特殊权限设置位S和沾附位T(转载)
- 空格替换 牛客网 程序员面试金典 C++ Python
- Spoj 2878 KNIGHTS - Knights of the Round Table | 双联通分量 二分图判定
- poj 2311 Cutting Game (SG)
- linux 内核源代码情景分析——linux 内存管理的基本框架