linux基本功系列之chattr命令

文章目录

  • 一. chattr命令介绍
  • 二. 语法格式及常用选项
  • 三. 参考案例
    • 3.1 给指定文件添加隐藏属性,阻止文件被修改:
    • 3.2 撤销i属性
    • 3.3 允许补充(追加)内容,无法覆盖/删除内容
  • 总结

前言🚀🚀🚀
想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 知识最重要的是记忆
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

一. chattr命令介绍

chattr命令来自于英文词组“change attribute”的缩写,其功能是用于更改文件隐藏属性。

chattr 修改文件在Linux第二扩展文件系统(E2fs)上的特有属性

符号模式有±=[ASacdisu]几种格式.:

  • 操作符`+'用来在文件已有属性的基础上增加选定的属性;
  • -'用来去掉文件上的选定的属性;而`='用来指定该文件的唯一属性.

常用的ls命令仅能够查看到文件的一般权限、特殊权限、SELinux安全上下文与是否有FACL访问控制列表等情况,但却无法查看到文件隐藏属性,今天我们一起来探讨下chattr,以及它的固有属性

在这里插入图片描述

二. 语法格式及常用选项

先来查看下具体的参数,我们用 man chattr 来查看:

-R     递归地修改目录以及其下内容的属性.  如果在递归目录时遇到了符号链接,遍历将跳过.
-V     详尽地给出chattr的输出信息并打印出程序的版本.
-v     version 设置文件系统的版本.

有关chattr的参数:
在这里插入图片描述

这些参数里,我们最常用的还是 i, a ,这两个参数,我们来看看常见的案例

三. 参考案例

3.1 给指定文件添加隐藏属性,阻止文件被修改:

此时用到+i参数
先给文件anaconda-ks.cfg 增加i属性

[root@mufenggrow ~]# ll anaconda-ks.cfg 
-rw-------. 1 root root 1686 128 19:31 anaconda-ks.cfg
[root@mufenggrow ~]# chattr +i anaconda-ks.cfg 
[root@mufenggrow ~]# ll anaconda-ks.cfg 
-rw-------. 1 root root 1686 128 19:31 anaconda-ks.cfg
[root@mufenggrow ~]# lsattr anaconda-ks.cfg 
----i----------- anaconda-ks.cfg
[root@mufenggrow ~]# 

此时我们发现文件加了i 权限,但当我们使用ll查看的时候是看不到的,只有用lsattr来查看才能查看到。

然后在登录文件尝试修改,发现提示无法修改


[root@master-21 ~]# vim anaconda-ks.cfg 
#kkkversion=DEVEL
# System authorization information
(省略部分输出)
E45: 已设定选项 'readonly' (请加 ! 强制执行) 

如果我们不登录进去尝试做增删改查,也是一样的效果:

## 删除测试
[root@mufenggrow ~]# rm -rf anaconda-ks.cfg 
rm: 无法删除"anaconda-ks.cfg": 不允许的操作
## 追加测试
[root@mufenggrow ~]# echo aaa >> anaconda-ks.cfg 
bash: anaconda-ks.cfg: 权限不够
## 移动测试
[root@mufenggrow ~]# mv anaconda-ks.cfg  /tmp/
mv: 无法将"anaconda-ks.cfg" 移动至"/tmp/anaconda-ks.cfg": 不允许的操作
## 复制测试
[root@mufenggrow ~]# cp anaconda-ks.cfg /tmp/
[root@mufenggrow ~]# ls /tmp/anaconda-ks.cfg 
/tmp/anaconda-ks.cfg

可以看到,无论是删除,修改,追加都是不允许的,但复制可以

而且我们会发现,复制的文件,并没有i权限

[root@mufenggrow ~]# lsattr /tmp/anaconda-ks.cfg 
---------------- /tmp/anaconda-ks.cfg

3.2 撤销i属性

-i 表示撤销i的属性,撤销后就变成了普通文件

## 创建文件及测试目录
[root@mufenggrow ~]# mkdir test
[root@mufenggrow ~]# cd test
[root@mufenggrow test]# touch a.txt
## 增加i 权限测试
[root@mufenggrow test]# chattr +i a.txt
[root@mufenggrow test]# echo aaa >> a.txt
bash: a.txt: 权限不够
## 删除i权限测试
[root@mufenggrow test]# chattr -i a.txt
[root@mufenggrow test]# !echo
echo aaa >> a.txt
[root@mufenggrow test]# echo $?
0
[root@mufenggrow test]# 

i权限被删除后,追加内容就能追加成功了

3.3 允许补充(追加)内容,无法覆盖/删除内容

-a 参数,可以实现追加内容,但无法进行覆盖和删除

我们先来创建一个测试文件b.txt,并授予a的权限,进行测试

[root@mufenggrow test]# touch b.txt
[root@mufenggrow test]# chattr +a b.txt
[root@mufenggrow test]# lsattr b.txt
-----a---------- b.txt
[root@mufenggrow test]# echo aaa >> b.txt
[root@mufenggrow test]# cat b.txt
aaa
[root@mufenggrow test]# rm -rf  b.txt
rm: 无法删除"b.txt": 不允许的操作
[root@mufenggrow test]# echo bb > b.txt
bash: b.txt: 不允许的操作
[root@mufenggrow test]# 

可以看到,b.txt无法删除和覆盖。 这里覆盖我们用的> , >> 表示追加

接下来我们取消a权限

[root@mufenggrow test]# chattr -a b.txt
[root@mufenggrow test]# echo bb > b.txt
[root@mufenggrow test]# cat b.txt 
bb

可以看到,撤销后,就可以进行覆盖了。

总结

以上就是关于chattr的命令操作,以及常用参数案例,欢迎留言一起讨论学习

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32253.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外箱标签是怎么制作的

外箱标签设计都较为复杂,无论条码类型还是数据都比较多,且在出库时每个标签上的条码、数字一般都是流水变化的。外箱标签一般包含了供应商、收货人、产品编码、生产日期、发货日期等信息。下面我们就看看这样的外箱标签是如何制作的。 启动条码标签软件&…

5分钟包你搞懂箱形图分析!

最近有很多用户说到了年终需要回顾这一年的工作,根据这一年的数据看看有没有异常的情况,那么哪种图能够清晰直观地展现出这一信息呢? 答案只有一个,那就是... 箱形图 箱形图(英文:Box plot)&…

Python绘制箱型图-boxplot()

boxplot()语法格式如下: boxplot(x,notchnone,symnone,vertnone,whisnone,positionsnone,widthsnone,patch_artistnone,meanlinenone,showcapsnone,showboxnone,showfliersnone,boxpropsnone,) x:表示箱型图的数据。 sym:表示异常值对应的符号&#x…

【java基础】包装类,自动装箱和自动拆箱

文章目录 基本介绍包装类自动装箱自动拆箱包装类注意事项包装类比较包装器内容不可变 基本介绍 有时,需要将int这样的基本类型转换为对象。所有的基本类型都有一个与之对应的类。 例如,Integer类对应基本类型int。通常,这些类称为包装器&…

纸箱外观设计 包装盒版面设计 纸箱尺寸设计 纸箱纸盒包装设计 纸箱设计图

瓦楞纸板是由面纸、里纸、芯纸和加工成波形瓦楞的瓦楞纸通过粘合而成。根据商品包装的需求,瓦楞纸板可以加工成单面瓦楞纸板、三层瓦楞纸板、五层、七层、十一层等瓦楞纸板。 不同波纹形状的瓦楞,粘结成的瓦楞纸板的功能也有所不同。即使使用同样质量的面…

今年下半年程序员生存指南!

​ 见字如面,我是军哥! 今天早上一醒来发现今天都 7 月 3 日,2023 的上半年已经悄然无声的离开我们了,你今年上半年目标达成如何? 最近看到新闻报道 5 月份,我国青年失业率 20.8%,比 4 月还高了…

脉脉、兼职猫逐梦AIGC,在线招聘江湖酝酿新变?

配图来自Canva可画 求职难与招聘难同时出现,人力资源行业供需双方互相嫌弃的问题如何解决?人力资源平台给出了新答案——AIGC。 2023年是AIGC在人力资源市场集中爆发的一年。脉脉平台上线类ChatGPT产品“万能的脉友”;数字化灵活用工平台兼…

AutoGPT太火了,无需人类插手自主完成任务,GitHub2.7万星

点击上方“AI遇见机器学习”,选择“星标”公众号 第一时间获取价值内容 来自|机器之心 OpenAI 的 Andrej Karpathy 都大力宣传,认为 AutoGPT 是 prompt 工程的下一个前沿。 近日,AI 界貌似出现了一种新的趋势:自主人工…

Ubuntu下不能切换中文,qt creator无法输入中文,sogo输入法(详细步骤)

目录: 1、解决ubuntu 不支持切换中文,并安装sogo输入法步骤; 2、解决Qt Creator不支持中文输入: 详细步骤: 一、解决ubuntu 不支持切换中文,并安装sogo输入法步骤: 1、如果在键盘输入法系统中&a…

经典文献阅读之—OverlapNet

点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 作者丨lovely_yoshino 来源丨古月居 简介 我们在之前的博客中讨论了一些激光回环检测的方法,但是基本都是围绕着点云特征去做的,并未涉足过深度学习的相关方法,之前作者在查…

文献阅读——How to give an Academic Talk

How to give an Academic Talk v4.0 By Paul N. Edwards,School of Information University of Michigan The awful academic talk 令人讨厌的学术演讲
这一场景你也许经历了上百次:
演讲者走进房子低下头,坐在桌边,不几乎不能透过眼前的…

一分钟get✔一个文献阅读的最核心技巧(用的是小绿鲸文献阅读器)

文章目录 最最核心的技巧——建立个人语料库其他技巧思维导图模板以及导图和大纲的相互转换一键导入知网文献自定义数据库的网址翻译 博主申请的福利 最最核心的技巧——建立个人语料库 参考我的语料库标签 每读一篇 就积累一些语料, 这样写的时候 写引言&#xff…

英文文章写作|文献管理|​​​​​​​阅读文献|引用文献|国内文章

目录 英文文章写作 1.阅读10篇文献,总结100个常用句型和常用短语 2.找3-5篇技术路线和统计方法与你的课题接近的文章,精读 3.针对论文的每一部分,尤其是某种具体方法、要讨论的某一具体方面,各找5-8 篇文献阅读,充…

英文不好的人如何阅读外文文献?

文章目录 0 前言1 工具2 查找文献3 阅读4 总结 0 前言 疫情在家,又要赶毕业设计。会遇到诸多烦恼。学校没有购买相应的数据库,买了也不能远程访问,怎么才能下载外文文献?英语不好,怎么才能读懂外文文献?不…

经典文献阅读之--OverlapNet

0. 简介 我们在之前的博客中讨论了一些激光回环检测的方法,但是基本都是围绕着点云特征去做的,并未涉足过深度学习的相关方法,之前作者在查找《经典文献阅读之–BoW3D》资料时看到了一个比较感兴趣的工作《OverlapNet: Loop Closing for LiD…

chatgpt赋能python:Python手把手教学:如何长截屏?

Python 手把手教学:如何长截屏? 导言 长截屏(full-page screenshot)是一种抓取整个网页、而不仅仅是可见区域的截屏。有时,你需要截取完整网页来记录信息、生成报告、分享内容或仅仅是作为计算机文件的样本。而 Pyth…

学计算机的女生后来都怎么样了?

上一篇:铁饭碗也不铁了 我估计有不少读者感兴趣,学计算机的女生都是怎么样的? 女程序员真的就如下面这张图形容的那样,没时间洗头、皮肤暗淡、黑眼圈吗?不尽然。 在我工作的9年里,我也接触过不少女开发。大…

chatgpt真好用——std::bind和std::function

chatgpt是一本正经的回答&#xff0c;有时候也是一本正经的胡说八道&#xff0c;不过挺有意思的。 下面回归正题&#xff0c;就是为何使用std::bind生成一个可调用的对象&#xff0c;叫做callable object。已经如何使用std::bind绑定类的成员函数。 #include <iostream>…

告别 ChatGPT:AI 工具与 ChatGPT 一样好(但很少有人使用它们)

在过去的几个月里&#xff0c;ChatGPT 获得了大量用户&#xff0c;因为它非常擅长编写电子邮件、博客、代码等等。但是&#xff0c;还有其他工具使用 ChatGPT 背后的模型来超越 ChatGPT 的功能。 在本文中&#xff0c;我将分享我认为比 ChatGPT 更好的工具列表&#xff0c;因为…

GPT来了,跑步迎接AI爆发的时代

你好&#xff0c;我是徐文浩&#xff0c;一个创办过一家AI聊天机器人公司的工程师。 有人说&#xff0c;编译原理、操作系统和图形学是程序员的三大浪漫。不过在整个计算机科学领域&#xff0c;还有一个超越这三者之外的存在&#xff0c;那就是人工智能。人工智能的诞生其实非…