Linux 文件系统属性 chattr 权限 学习总结
一、前言:
前面四篇文章分别总结Linux基本权限和umask默认权限、ACL权限、sudo授权以及文件特殊权限 SUID、SGID和Sticky BIT,还有文件系统属性 chattr 权限待总结。
那么,本篇总结Linux权限管理中的文件系统属性 chattr 权限。
二、文件系统属性 chattr 权限
2.1 命令格式
- 命令格式:chattr [+-=][选项] 文件名或目录
- 参数: - +:增加权限- - :删除权限- =:等于某个权限
- 选项: - i :设置** i **属性 - 针对文件:成为只读(read-only)文件,不允许改名、删除文件,不允许添加和修改文件的数据,root用户也会受到限制;- 针对目录:不允许建立、删除文件,可以修改目录下文件的数据;- a:设置 **a **属性 - 针对文件:不允许修改、删除数据,可以追加数据- 针对目录:允许在目录下建立、修改文件,不允许删除文件
2.2 查看文件系统属性 lsattr
- 命令格式
- 格式:lsattr [选项] 文件名或目录
- 选项: - -a:显示所有文件或者目录的文件系统属性;- -d:如果是目录,仅列出目录本身,不列出目录下的子文件。
2.3 举例
2.3.1 测试文件系统属性 i 属性
- 针对文件测试 i 属性
#创建测试目录 itest
[root@localhost ~]# mkdir itest
[root@localhost ~]# cd itest
#创建测试文件 ifile
[root@localhost itest]# touch ifile
文件ifile 赋予 i 属性
[root@localhost itest]# chattr +i ifile
#测试是否可改名
[root@localhost itest]# mv ifile test
mv: 无法将"ifile" 移动至"test": 不允许的操作
#测试是否可删除
[root@localhost itest]# rm -rf ifile
rm: 无法删除"ifile": 不允许的操作
#测试是否可以添加或修改数据(1)
[root@localhost itest]# echo 111 >> ifile
-bash: ifile: 权限不够
#测试是否可以添加或修改数据(2)
[root@localhost itest]# lsattr ifile
----i--------e- ifile
[root@localhost itest]# vi ifile
1 This is a itest file!
~
...
"ifile"
"ifile" E212: 无法打开并写入文件
请按 ENTER 或其它命令继续
#删除 ifile 的 i 属性
[root@localhost itest]# chattr -i ifile
[root@localhost itest]# lsattr ifile
-------------e- ifile
- 针对目录测试 **i **属性
#进入/tmp,创建目录 itest2,并创建文件 ifile1
[root@localhost ~]# cd /tmp
[root@localhost tmp]# mkdir itest2
[root@localhost tmp]# cd itest2/
[root@localhost itest2]# touch ifile1
[root@localhost itest2]# ls
ifile1
#返回 /tmp,给目录 itest2 设置 i 属性
[root@localhost itest2]# cd ..
[root@localhost tmp]# lsattr -d itest2/
-------------e- itest2/
[root@localhost tmp]# chattr +i itest2/
[root@localhost tmp]# lsattr -d itest2/
----i--------e- itest2/
#进入目录 itest2 进行测试
[root@localhost tmp]# cd itest2/
#测试创建文件
[root@localhost itest2]# touch ifile2
touch: 无法创建"ifile2": 权限不够
#测试删除文件
[root@localhost itest2]# rm -rf ifile1
rm: 无法删除"ifile1": 权限不够
#测试传入数据
[root@localhost itest2]# echo 11111111111 > ifile1
[root@localhost itest2]# echo "This" >> ifile1
[root@localhost itest2]# cat ifile1
11111111111
This
2.3.2 测试文件系统属性 a 属性
- 针对文件测试 a 属性
[root@localhost tmp]# lsattr yum.log
-------------e- yum.log
#给 yum.log 设置 a 属性
[root@localhost tmp]# chattr +a yum.log
[root@localhost tmp]# lsattr yum.log
-----a-------e- yum.log
#测试修改 yum.log 的数据
[root@localhost tmp]# echo "modify yum.log" > yum.log
-bash: yum.log: 不允许的操作
#测试追加数据
[root@localhost tmp]# echo "append yum.log" >> yum.log
[root@localhost tmp]# cat yum.log
append yum.log
#追加成功
- 针对目录测试 **a **属性
#创建测试目录 atest
[root@localhost ~]# mkdir atest
#赋予 a 属性
[root@localhost ~]# chattr +a atest
[root@localhost ~]# lsattr -d atest
-----a-------e- atest
#进入 atest 目录
[root@localhost ~]# cd atest/
#创建文件
[root@localhost atest]# touch afile
#删除文件
[root@localhost atest]# rm -rf afile
rm: 无法删除"afile": 不允许的操作
三、小结
- 知识点总结: - 命令格式:chatttr [+-=][选项] 目录或文件名;- ’查看文件系统属性:lsattr [参数] 文件名或者目录;- i 属性 和 a 属性设置及验证- 生产环境中,a 属性设置较为常见。
** 推荐阅读**
Linux 权限管理_文件特殊权限SetUID、SetGID和Sticky BIT 学习总结(四)
Linux 权限管理_sudo授权 学习总结(三)
Linux 权限管理_ACL权限 学习总结(二)
Linux 权限管理_文件特殊权限SetUID、SetGID和Sticky BIT 学习总结(四)
如文章内有不足之处,欢迎批评指正。
本文转载自: https://blog.csdn.net/Superman_Gao/article/details/124555129
版权归原作者 走向运维的老男孩 所有, 如有侵权,请联系我们删除。
版权归原作者 走向运维的老男孩 所有, 如有侵权,请联系我们删除。