linux文件特殊属性 lsattr,chattr详解

2024-02-11 03:32

本文主要是介绍linux文件特殊属性 lsattr,chattr详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

linux文件特殊属性 lsattr chattr

  • lsattr chattr
    • lsattr
    • chattr
    • 局限性

lsattr chattr

linux lsattr命令用于显示文件属性,用 chattr可以改变文件或目录的属性。通过chattr命令修改属性能够提高系统安全性,但是它并不适合所有的目录。chattr命令不能保护/,/dev,/tmp,/var目录。

lsattr

lsattr的用法
lsattr [ -RVadv ] [ files… ]
参数
-R 递归地列出目录及其内容的属性。
-V 显示版本信息
-a 列出目录中所有文件和目录,包括以".“为名称开头字符的额外内建,现行目录”.“与上层目录”…"
-d 像列出其他文件一样列出目录,而不是列出它们的内容。
-v 显示文件或目录版本。

chattr

chattr的用法
chattr [ -RVf ] [ -v version ] [ mode ] files…
参数
-R 递归处理,将指定目录下的所有文件及子目录一并处理
-V 详细描述chattr的输出并打印proqram版本。
-f 抑制大多数错误消息。
-v 设置文件活目录的版本。
mode
a:让文件或目录仅提供附加用途,只允许以追加方式读写文件
A:当文件被访问时,它的atime(访问时间)记录不会被修改。这为系统避免了一定数量的磁盘I/o。
c:将文件或目录压缩后存放。文件会被内核自动压缩到磁盘上。从这个文件读取未压缩的数据。对该文件的写入会在将日期存储到磁盘之前压缩它们。
C:属性设置为“C”的文件将不会copy-on-write(写时复制)。此属性仅在支持copy-on-write的文件系统上支持。
d:将目录排除在倾倒操作之外。
D:目录被修改时,这些修改被同步写入磁盘;这相当于应用于文件子集的“dirsync”挂载选项。
e:表示文件使用区段来映射磁盘上的块。不能使用chattr移除。
E:用来表示压缩文件有压缩错误。虽然可以用Isattr显示,但chttr不能设置或重置它。
h:表示文件以文件系统块大小为单位存储其块,而不是以扇区为单位,并表示该文件大于2TB。虽然可以通过Isattr显示,但chattr不能设置或重置
i:文件不能被修改:不能被删除或重命名,不能创建到该文件的链接,也不能向该文件写入数据。
I:文件或目录使用散列树对目录进行索引。不能使用chattr设置或重置它,但可以用lsattr显示。
j:如果文件系统是用data=ordered或data=writeback选项挂载的,那么带有“j”属性的文件在被写到文件本身之前,它的所有数据都被写到ext3或ext4日志中。当用“data-journal”选项挂载文件系统时,所有文件数据都已经被记录,这个属性没有作用。
N:表示该文件将数据内联存储在inode本身中。不能使用chattr来设置或重置,但可以通过lsattr来查看。
s:允许一个文件被安全地删除文件被删除时,它的块被归零并写回磁盘。
S:即时更新文件或目录。文件被修改时,这些修改将同步写入磁盘。
t:带有“t”属性的文件在与其他文件合并的文件末尾不会有部分块片段(对于那些支持tail-merging的文件系统)。这是
对于像LILO这样直接读取文件系统且不支持tail-merging的文件的应用程序来说是必需的。
T:目录将被视为目录层次结构的顶部。这是给块分配器的一个提示由ext3和ext4使用,该目录下的子目录是不相关的,因此为了分配目的应该分散开来。
u:预防意外删除。若文件删除,系统会允许你在以后恢复这个被删除的文件
X:可以直接访问压缩文件的原始内容。不可以使用chattr重置或设置,可以使用lsattr显示。

局限性

ext2,ext3和ext4文件系统不支持’c’,'s’和’u’属性
在当前的主线Linux内核中实现。设置’a’和’i’属性将不会影响写入现有文件描述符的能力。
"j"选项仅对ext3和ext4文件系统有用。
"D"选项仅在Linux内核2.5.19及更高版本上有用。

这篇关于linux文件特殊属性 lsattr,chattr详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/698724

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP