linux基本功系列之chattr命令

news2024/9/22 4:36:53

文章目录

  • 一. 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.coloradmin.cn/o/177296.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW监控操纵杆,键盘或鼠标

LabVIEW监控操纵杆,键盘或鼠标在LabVIEW中从操纵杆/鼠标/键盘获取数据在LabVIEW中监控我的输入设备如何知道键盘上按了哪些键?用轮询的方式监控鼠标,键盘或操纵杆的动作。要在LabVIEW中监控这些设备,可以使用内置的输入设备采集VI…

【STM32】寄存器原理

如果我们想要深入去学习STM32单片机的存储原理和方式,就要花时间去了解STM32单片机有关寄存器的基本原理 单片机型号:正点原子STM32F103ZET6 目录 寄存器的定义 寄存器分类 存储器映射 寄存器映射 通过地址访问控制单元运作 通过定义宏来取代直接访…

C++ 哈希表查询_进入哈希函数结界的世界

1. 前言 哈希表或称为散列表,是一种常见的、使用频率非常高的数据存储方案。 哈希表属于抽象数据结构,需要开发者按哈希表数据结构的存储要求进行 API 定制,对于大部分高级语言而言,都会提供已经实现好的、可直接使用的 API&…

基于PythonOpenCv的视频图像处理

博主简介 博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的&#xff0c…

【教程】虚拟环境与Pytorch安装保姆级教学

【教程】虚拟环境与Pytorch安装保姆级教学NVIDIA驱动安装虚拟环境创建激活/退出相关库的安装Pycharm内设置虚拟环境Pytorch安装安装地址可能遇到的问题处理报错安装卡顿测试是否安装完成参考NVIDIA驱动安装 NVIDIA驱动可在官网进行安装:NVIDIA驱动官网 命令行输入…

一文上手决策树:从理论到实战

一、基础概念 决策树是一类极为常用的机器学习方法,尤其是在分类场景。决策树通过树形结构来递归地将样本分割到不同的叶子结点中去,并根据每个叶子结点中的样本构成对该结点中的样本进行分类。 我们可以从两个视角来理解决策树模型。 第一种视角是将…

Python副业技术总结,手把手教你用宝塔面板部署Django程序

前言 最近写了几个Django项目,写完以后怎么让对方测试成了问题,因为之前都是自己在本地写的练习项目,对于部署这一块很陌生,不知道怎么操作,内心很忐忑。没办法,只能硬着头皮上,一边百度&#…

17种编程语言实现排序算法-插入排序

开源地址 https://gitee.com/lblbc/simple-works/tree/master/sort/ 覆盖语言:C、C、C#、Java、Kotlin、Dart、Go、JavaScript(JS)、TypeScript(TS)、ArkTS、swift、PHP。 覆盖平台:安卓(Java、Kotlin)、iOS(SwiftUI)、Flutter(Dart)、Window桌面(C#)、…

ARP渗透与攻防(四)之WireShark截获用户数据

ARP-WireShark截获用户数据 系列文章 ARP渗透与攻防(一)之ARP原理 ARP渗透与攻防(二)之断网攻击 ARP渗透与攻防(三)之流量分析 1.WireShark工具介绍 wireshark的官方下载网站: WireShark wireshark是非常流行的网络封包分析软件,功能十分强大。可以…

PowerShell 学习笔记:压缩、解压缩文件

在自动构建的时候&#xff0c;最常用的就是压缩备份项目的源文件&#xff0c;PowerShell提供了相关命令。Compress-Archive&#xff08;压缩文件&#xff09;Compress-Archive[-Path] <String[]>[-DestinationPath] <String>[-CompressionLevel <String>][-P…

Crossplane - 比 Terraform 更先进的云基础架构管理平台?

&#x1f449;️URL: https://crossplane.io/ &#x1f4dd;Description: 将云基础架构和服务组成自定义平台 API 简介 在 11 月的 KCD 上海现场&#xff0c;听了一场阿里云的工程师关于他们自己的多云基础架构管理工具的介绍&#xff0c;前边的引言部分有介绍到 Terraform&am…

连续系统的数字PID控制仿真-3

在连续系统的数字PID控制仿真-2的基础上&#xff0c;利用S函数实现PID离散控制器的Simulink仿真。在S函数中&#xff0c;采用初始化函数、更新函数和输出函数&#xff0c;即 mdlInitializeSizes函数、mdIUpdates函数和mdlOutputs函数。在初始化中采用sizes 结构&#xff0c;选择…

什么是GRACE CPU --- Grace CPU架构详解

深入详解GRACE CPU架构 NVIDIA Grace CPU 是 NVIDIA 开发的第一款数据中心 CPU。 通过将 NVIDIA 专业知识与 Arm 处理器、片上结构、片上系统 (SoC) 设计和弹性高带宽低功耗内存技术相结合&#xff0c;NVIDIA Grace CPU 从头开始构建&#xff0c;以创建世界上第一个超级芯片 用…

Spring控制反转(IoC)和依赖注入(DI)

Spring官网&#xff1a;spring.io1.spring 2.SprinMVC 3.Maven高级 4.SpringBoot 5.MyBatisPlus为什么要学Spring?简化开发&#xff0c;降低企业级开发的复杂度框架整合&#xff0c;高效整合其他技术&#xff0c;提高企业级应用开发与运行效率Spring 系统架构IOC&#xff08;I…

分享132个ASP源码,总有一款适合您

ASP源码 分享132个ASP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c; 132个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/1bk2hftqR5NTdUIT2zvmbiw?pwdke5x 提取码&#x…

离散数学与组合数学-04图论

文章目录离散数学与组合数学-04图论4.1 图的引入4.1.1 图的示例4.1.2 无序对和无序积4.1.3 图的定义4.2 图的表示4.2.1 集合表示和图形表示4.2.2 矩阵表示法4.2.3 邻接点与邻接边4.3 图的分类4.3.1 按边的方向分类4.3.2 按平行边分类4.3.3 按权值分类4.3.4 综合分类方法4.4 图论…

干货 | 移动互联网应用程序(APP)个人信息安全自我评测工具

以下内容整理自清华大学《数智安全与标准化》课程大作业期末报告同学的汇报内容。第一部分&#xff1a;研究背景概述截止今年6月&#xff0c;我国已经有APP 232万款&#xff0c;手机网民达到10.47亿&#xff0c;在APP中大规模的个人信息收集和使用成为常态&#xff0c;个人信息…

【算法题】1828. 统计一个圆中点的数目

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 题目&#xff1a; 给你一个数组 points &#xff0c;…

Kubernetes:基于命令行终端UI的管理工具 K9s

写在前面 K9s 是一个基于终端UI的 K8S 管理工具博文内容为 k9s 在 windows、Linux 以及docker 安装Demo简单的 热键使用。理解不足小伙伴帮忙指正 我所渴求的&#xff0c;無非是將心中脫穎語出的本性付諸生活&#xff0c;為何竟如此艱難呢 ------赫尔曼黑塞《德米安》 K9s 是一…

客快物流大数据项目(一百零八):Spring Cloud 技术栈

文章目录 Spring Cloud 技术栈 ​​​​前言 一、微服务技术栈