文件系统属性chattr权限,也叫不可改变位权限,该权限没有风险,但是他能限制root用户。

1、命令格式

[root@localhost ~]# chattr [+-=] [选项] 文件或目录名

选项

  • +:增加权限。
  • -:删除权限。
  • =:等于某权限。(不常用)
  • i:如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据(也就是文件不能做任何修改,相当于把文件加了一把锁,包括root在内都不行。);如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。
  • a:如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除。
  • e:Linux中绝大多数的文件都默认拥有e属性。表示该文件是使用ext文件系统进行字储的,而且不能使用chattr -e命令取消e属性。

提示:常用的就是ia属性。

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":不允许的操作

『学了就忘』Linux权限管理 — 56、不可改变位权限(chattr)的更多相关文章

  1. 『学了就忘』Linux基础命令 — 25、文件基本权限的管理

    目录 1.文件和目录的默认权限 2.umask默认权限 (1)查看系统的umask权限 (2)用八进制数值显示umask权限 (3)umask权限的计算方法 (4)注意:umask默认权限的计算绝不是 ...

  2. 『学了就忘』Linux基础命令 — 23、文件基本权限的介绍和作用

    目录 1.基本权限的介绍 (1)权限位的含义 (2)权限的优先级 2.权限的基本作用 (1)权限含义的解释 (2)目录权限说明 1.基本权限的介绍 (1)权限位的含义 前面讲解ls命令时,我们已经知道 ...

  3. 『学了就忘』Linux基础命令 — 24、文件基本权限的相关命令

    目录 1.chmod命令 2.权限模式 (1)用户身份. (2)赋予方式. (3)权限. 3.数字权限 4.文件常用权限 5.chown命令 6.chgrp命令 7.总结 常用基本权限操作命令: ch ...

  4. 『学了就忘』Linux用户管理 — 50、用户管理相关文件详细说明

    目录 1.用户信息文件 2./etc/shadow影子文件 3./etc/group 组信息文件 4.组密码文件 5.用户的家目录 6.用户邮箱目录 7.用户模板目录 总结: 提示:严格的用户权限划分 ...

  5. 『学了就忘』Linux用户管理 — 51、用户管理相关命令

    目录 1.添加用户(useradd命令) 2.设定密码(passwd命令) 3.用户信息修改(usermod命令) 4.删除用户(userdel命令) 5.切换用户身份(su命令) 1.添加用户(us ...

  6. 『学了就忘』Linux服务管理 — 75、Linux系统中的服务

    目录 1.服务的介绍 2.Windows系统中的服务 3.Linux系统中服务的分类 4.独立的服务和基于xinetd服务的区别 5.如何查看一个服务是独立的服务还是基于xinetd的服务 (1)查看 ...

  7. 『学了就忘』Linux日志管理 — 92、日志轮替

    目录 1.日志文件的命名规则 2.logrotate配置文件说明 3.logrotate配置文件的主要参数 1.日志文件的命名规则 日志轮替最主要的作用就是把旧的日志文件移动并改名,同时建立新的空日志 ...

  8. 『学了就忘』Linux日志管理 — 93、日志轮替补充

    目录 1.把自己的日志加入日志轮替 (1)操作方式 (2)示例 2.logrotate命令 1.把自己的日志加入日志轮替 使用RPM包方式安装服务的日志会自动的加入logrotate轮替,一般不需要你 ...

  9. 『学了就忘』Linux软件包管理 — 40、Linux系统软件包介绍

    目录 1.Linux系统软件包分类 2.源码包说明 3.二进制包说明 4.RPM包的优缺点 4.RPM包的两种安装方法 5.总结 1.Linux系统软件包分类 Linux系统下的软件包只有源码包和二进 ...

  10. 『学了就忘』Linux软件包管理 — 42、对RPM软件包的查询操作

    目录 1.查询RPM软件包是否安装 2.查询系统中所有已安装的RPM软件包 3.查询RPM软件包的详细信息 4.查询RPM软件包中的文件列表 5.查询系统文件属于哪个RPM包 6.查询RPM软件包所依 ...

随机推荐

  1. (半课内)信安数基 RSA-OAEP 初探

    在RSA攻击中,存在着"小明文攻击"的方式: 在明文够小时,密文也够小,直接开e次方即可: 在明文有点小时,如果e也较小,可用pow(m,e)=n*k+c穷举k尝试爆破 所以,比如 ...

  2. netty系列之:netty对http2消息的封装

    目录 简介 http2消息的结构 netty对http2的封装 Http2Stream Http2Frame 总结 简介 无论是什么协议,如果要真正被使用的话,需要将该协议转换成为对应的语言才好真正的 ...

  3. Scrum Meeting 0607

    零.说明 日期:2021-6-7 任务:简要汇报两日内已完成任务,计划后两日完成任务 一.进度情况 组员 负责 两日内已完成的任务 后两日计划完成的任务 困难 qsy PM&前端 重新设计产品 ...

  4. BUAA软工-结对项目作业

    结对项目作业 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 结对项目作业 我在这个课程的目标是 通过这门课锻炼软件开发能力和经验,强化与他人合作 ...

  5. spring security整合QQ登录

    最近在了解第三方登录的内容,尝试对接了一下QQ登录,此次记录一下如何实现QQ登录的过程,在这个例子中是和spring secuirty整合的,不整合spring secuirty也是一样的. 需求: ...

  6. sublime text c++ makefile

    http://blog.csdn.net/wangdan1600/article/details/43857195 http://blog.csdn.net/artprog/article/detai ...

  7. redis 集群环境搭建

    原理: 1,每个Redis群集的节点都需要打开两个TCP连接,由于这两个连接就需要两个端口,分别是用于为客户端提供服务的常规Redis TCP命令端口(例如6379)以及通过将10000和命令端口相加 ...

  8. sudo user1账号获得管理员root的权限

    user1虽然有sudo权限,但不是真正的root权限,修改内核参数之类的就做不了 但是有sudo权限就可以添加账号,以下添加了admin账号与root账号一样的权限 useradd -u 0   - ...

  9. openssh 8.2 升级 8.3

    openssh 8.2 存在安全漏洞,升级为 openssh 8.3 需要安装的包:openssh-8.3p1.tar.gz.zlib-1.2.11.tar.gz.openssl-1.1.1g.tar ...

  10. win10 vscode安装babel

    第一步:安装 babel-cli cd进入项目根目录,执行命令: npm install --global babel-cli 第二步:检测第一步是否成功,输入命令 babel --version,若 ...