第八天 1-7 实战:创建一个root无法删除的文件

实战:创建一个root无法删除的文件

简介:Linux文件的最底层(内核级别)属性的查看与修改

命令:lsattr、chattr

Linux文件除了具有基本权限rwx,及特殊权限(SUID、SGID、SBIT(Sticky))外,还有几个更接近底层的文件),我们可通过lsattr查看这些属性,并通过chattr来修改这些属性

命令格式:
lsattr [-RVadv] [file]
-R  #递归的列出文件夹中所有文件的属性
-V  #查看lsattr版本
-a  #查看list所有的文件,包括隐藏文件
-d  #列出目录的属性
-v  #列出文件的版本号or代号

chattr [-RVf] [mode]  [file]
-R #递归的列出文件夹中所有文件的属性
-V #查看chattr版本
-f  #抑制大多数错误消息
-v #设置文件的版本号or代号
例如:chattr +i  a.txt
这些属性包括:‘aAcCdDeijsStTu‘:
append only  (a),设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日期文件安全,只有root才能设定这个属性
no  atime  updates(A), 文件或目录的atime(access time)不可被修改(modified),可以有效预防例如手提电脑磁盘I/O错误的发生
compressed  (c), 设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
no copy on write (C),
no dump (d),设定文件不能成为dump程序的备份目标
synchronous directory updates (D),
extent format (e),
immutable (i),设定文件不能被删除、改名、设定连接关系,同时不能写入或新增内容。i参数对于文件系统的安全设置有很大帮助。
data journalling (j),
secure deletion (s),保密性的删除文件或目录,即硬盘空间被全部收回
synchronous  updates  (S),硬盘I/O同步选项,功能类似sync  
no  tail-merging (t),
top of directory hierarchy (T),
and undeletable (u),与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用与undeletion。
常用到的为a和i

实验:对/etc/passwd文件添加i属性,然后对其执行修改等操作

时间: 2024-08-28 15:20:31

第八天 1-7 实战:创建一个root无法删除的文件的相关文章

创建一个程序读入和显示视频文件,并可以使用滑动条控制视频文件的播放。一个滑动条用来控制视频播放位置,以10为步长跳进。另一个滑动条用来控制停止/播放

/* 创建一个程序读入和显示视频文件,并可以使用滑动条控制视频文件的播放. 一个滑动条用来控制视频播放位置,以10为步长跳进.另一个滑动条用来控制 停止/播放 */ #include <cv.h> #include <highgui.h> int g_slider_position = 0; CvCapture* g_capture = NULL; int index = 0; bool flag = true; int g_slider_position1 = 0; void o

Java链接HBASE数据库,创建一个表,删除一张表,修改表,输出插入,修改,数据删除,数据获取,显示表信息,过滤查询,分页查询,地理hash

准备工作 1.创建Java的Maven项目 创建好的目录结构如下:  另外注意junit的版本,最好不要太高,最开始笔者使用的junit4.12的,发现运行的时候会报错.最后把Junit的版本改成4.7的之后,问题解决了. 创建测试工具类HbaseDemo,为了保证能够让Hbase运行,需要最开始写出如下配置: package toto.com.hbase; import java.util.ArrayList; import java.util.Iterator; import org.apa

创建一个版本库,把文件夹用Git管理起来

创建一个文件夹,把这个文件夹用Git管理起来,那么这个文件夹的改变都可以被Git跟踪到,当然也可以将Git中的文件还原到某一个时刻. 首先创建一个空的目录,然后将空的目录由Git来管理 1.建立一个文件夹: 2.在MINGW中进入文件夹 3.将这个文件夹由Git来管理 首先使用命令符pwd来确认当前所在的目录 确认完毕后将文件夹有Git来管理使用命令符git init   同时他告诉你这是一个空的文件夹 4.把文件添加到版本库中 首先必须明确一点所有的版本控制系统都只能跟踪文本文件的改动,比如t

如何避免root用户删除重要文件

假设我们保存的重要文件名是zhongyao chattr +i zhongyao ps :加上参数i以后,文件不能被删除.改名,设置连接也不能写入和添加数据 也就是说文件一直保持原状态!! 这个厉害了 , 如果想要去掉这个属性 ,很简单,只要 chattr -i zhongyao ps :当然上述只能root用户设置! 下面顺便给大家介绍chattr的另外一个参数a 其实这个参数很简单,a 也就是add的缩写,从字面意思上看也就是只能增加 用法是:chattr +a filename ps :如

java dom4j创建 ,修改 ,删除 xml文件内容

import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentExcep

Hololens创建、读取、删除本地文件

参考资料 1.微软官方介绍 saving and finding your files https://developer.microsoft.com/en-us/windows/mixed-reality/saving_and_finding_your_files 2.自定义文件存取方法  http://longqian.me/2017/02/08/hololens-file-transfer/ 按照2中的方法,可以将文件保存在 ApplicationData.Current.RoamingF

如何创建一个ContentHub exporter

在以前的例子"利用ContentHub API来import图片"及"使用ContentHub来导入我们需要的照片"中,我们已经讲述了如何从别的应用中提取一个图片到我们的应用中.我们也在我们的另外一个文章"如何通过ContentHub把内容从一个地方传到另外一个地方"介绍了如何把我们应用的照片存放到我们想要的目录中.这一切都是通过ContentHub API来实现的.在今天的文章中,我们将着重介绍如何使自己的应用变成一个exporter,从而别的

ROS学习(三)——创建一个简单的发布节点和订阅节点

暑假在家有些懈怠,不,非常懈怠- -||!良心已经发痛了,想快些补回原来的进度,但忽然发现,中断了一段时间再重新去学习,有的地方连最基本的符号都忘记了 ,这次特意弄个最最基础的,恢复一下,以前的进度. 1.建立一个工作空间 $ mkdir -p ~/catkin_xi/src $ cd ~/catkin_xi/src 在home文件夹里面发现新建好了相应的文件夹,当然里面,空空的,什么都没有. 接着,使用catkin_make命令在catkin 工作空间中新建文件夹,当前目录应该能看到'buil

创建一个ROS工作空间(ROS Workspace)

详细参照 http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment1.mkdir -p ~/catkin_ws/src解析:在 /home/你的用户名目录/ 下创建一个ROS工作空间,即文件夹catkin_ws,然后在工作空间 catkin_ws 下创建一个文件夹 src你也可以将工作空间 catkin_ws 起成其他名字,例如:mkdir -p ~/tutorial/src ,那么下面的所有命令中的catk