|NO.Z.00040|——————————|LinuxBasicEnd|——|Linux&权限管理.V06|
一、文件系统属性 chattr 权限
### --- 命令格式
### --- 选项:
~~~ +: 增加权限
~~~ -: 删除权限
~~~ =: 等于某权限
~~~ i: 如果对文件设置 i 属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置 i 属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。
~~~ a: 如果对文件设置 a 属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置 a 属性,那么只允许在目录中建立和修改文件,但是不允许删
~~~ e: Linux 中绝大多数的文件都默认拥有 e 属性。表示该文件是使用 ext 文件系统进行存储的,而且不能使用“chattr -e”命令取消 e 属性。
[root@localhost ~]# chattr [+-=] [选项] 文件或目录名
二、查看文件系统属性 lsattr
### --- 查看文件系统属性 lsattr
### --- 选项:
~~~ -a 显示所有文件和目录
~~~ -d 若目标是目录,仅列出目录本身的属性,而不是子文件的
[root@localhost ~]# lsattr 选项 文件名
三、举例
### --- 例 1:
~~~ 给文件赋予 i 属性
[root@localhost ~]# touch ftest
~~~ 建立测试文件
~~~ rm: 无法删除"ftest": 不允许的操作
~~~ 赋予 i 属性后,root 也不能删除
[root@localhost ~]# chattr +i ftest
[root@localhost ~]# rm -rf ftest
~~~ -bash: ftest: 权限不够
~~~ 也不能修改文件的数据
~~~ 给目录赋予 i 属性
[root@localhost ~]# echo 111 >> ftest
~~~ 建立测试目录
[root@localhost ~]# mkdir dtest
~~~ 再建立一个测试文件 abc
[root@localhost dtest]# touch dtest/abc
~~~ 给目录赋予 i 属性
[root@localhost ~]# chattr +i dtest/
### --- touch: 无法创建"bcd": 权限不够
~~~ dtest 目录不能新建文件
[root@localhost ~]# cd dtest/
[root@localhost dtest]# touch bcd
~~~ 但是可以修改文件内容
[root@localhost dtest]# echo 11 >> abc
[root@localhost dtest]# cat abc
11
~~~ rm: 无法删除"abc": 权限不够
~~~ 不能删除
[root@localhost dtest]# rm -rf abc
### --- 例 2:
~~~ 建立备份目录
[root@localhost ~]# mkdir -p /back/log
~~~ 赋予 a 属性
[root@localhost ~]# chattr +a /back/log/
~~~ 可以复制文件和新建文件到指定目录
[root@localhost ~]# cp /var/log/messages /back/log/
~~~ rm: 无法删除"/back/log/messages": 不允许的操作但是不允许删除
[root@localhost ~]# rm -rf /back/log/messages
四、文件系统属性 chattr 权限:实验专题
### --- 给文件添加chattr权限
[root@server11 ~]# touch yanqi
[root@server11 ~]# chattr +i yanqi
### --- 查看文件的隐藏属性
[root@server11 ~]# lsattr yanqi
----i----------- yanqi
[root@server11 ~]# vim yanqi // 修改文件保存和修改都不可以操作,把文件权限锁起来。所有用户都不可以不执行的。
[root@server11 ~]# ls // 但会生成一个临时文件,防止后期使用
yanqi yanqi~
[root@server11 ~]# rm -rf yanqi
rm: cannot remove ‘yanqi’: Operation not permitted
### --- 若是想操作,需要取消-i权限
[root@server11 ~]# chattr -i yanqi
[root@server11 ~]# rm -rf yanqi
### --- 给目录添加Chattr权限
[root@server11 ~]# mkdir yanqi
[root@server11 ~]# touch yanqi/yanqi1
[root@server11 ~]# chattr +i yanqi
[root@server11 ~]# lsattr yanqi/
---------------- yanqi/yanqi1
### --- 查看目录是否添加不可改变权限
[root@server11 ~]# lsattr -d yanqi/
----i----------- yanqi/
[root@server11 ~]# rm -rf yanqi/yanqi1
rm: cannot remove ‘yanqi/yanqi1’: Permission denied
[root@server11 ~]# touch yanqi/yanqi2
touch: cannot touch ‘yanqi/yanqi2’: Permission denied
[root@server11 ~]# vim yanqi/yanqi1 // 是可以修改的,因为我们只是对目录做了不可修改权限
aaaaaaa
### --- 若是对文件设置a属性,只能在文件中增加数据,但是不能删除或者修改数据
[root@server11 ~]# touch yanqi
[root@server11 ~]# chattr +a yanqi
[root@server11 ~]# lsattr yanqi
-----a---------- yanqi
[root@server11 ~]# vim yanqi // 依然写入数据;不能用vi来编辑;使用echo
[root@server11 ~]# echo "aaaaaaaaaaaaa" >> yanqi
[root@server11 ~]# cat yanqi
aaaaaaaaaaaaa
### --- 若是对目录设置a属性,只能在文件中增加数据,但是不能删除或者修改数据
~~~ 只可以对目录下的文件只有增加文件和目录的权限,但是没有删除权限
[root@server11 ~]# mkdir yanqi
[root@server11 ~]# chattr +a yanqi
[root@server11 ~]# lsattr -d yanqi/
-----a---------- yanqi/
[root@server11 ~]# touch yanqi/yanqi1
[root@server11 ~]# mkdir yanqi/yanqi2
[root@server11 ~]# rm -rf yanqi/yanqi1
rm: cannot remove ‘yanqi/yanqi1’: Operation not permitted
[root@server11 ~]# rm -rf yanqi/yanqi2
rm: cannot remove ‘yanqi/yanqi2’: Operation not permitted
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv005-basic
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」