1. 命令功能

chattr和lsattr用来改变文件、目录属性和查看这种文件属性;chmod只是改变文件的读、写、执行权限,更底层的属性控制是由chattr来改变。

2. 语法格式

chattr [ -RVf ] [ -v version ] [ mode ] files.

关键说明:

[mode]部分由+-=和[ASacDdIijsTtu]字符组成,这部分用来控制文件属性。

参数

参数说明

+

在原有参数设定基础上,追加参数

-

在原有参数设定基础上,移除参数

=

更新为指定参数设定

A

文件或目录的atime(access time)不可被修改

a

append,只能向文件中添加数据,而不能删除,用于服务器日志安全,只有root才能设定这个权限

c

compresse,设定文件是否压缩后在存储,读取时需要经过自动解压操作。

i

设定文件不能被删除,改名,设定链接关系,同时不能写入或新增内容,i参数对于文件系统安全设置有较大帮助。

s

保密性删除文件或目录,及硬盘空间被全部回收。

3. 使用范例

范例1:chattr防止系统中某个关键文件被修改

[root@localhost data]# cp /etc/resolv.conf .

[root@localhost data]# chattr +i resolv.conf    #给文件加上不能被改变权限属性

[root@localhost data]# echo "hello world" >> resolv.conf   #不能追加内容

-bash: resolv.conf: Permission denied

[root@localhost data]# rm resolv.conf                   #不能删除

rm: remove regular file `resolv.conf'? y

rm: cannot remove `resolv.conf': Operation not permitted

[root@localhost data]# mv resolv.conf resolv.conf.bak      #不能改名

mv: cannot move `resolv.conf' to `resolv.conf.bak': Operation not permitted

范例2:取消 -i权限

[root@localhost data]# chattr -i resolv.conf

[root@localhost data]# echo 'hello'  >> resolv.conf

[root@localhost data]# cat resolv.conf

nameserver 114.114.114.114

nameserver 61.128.128.68

hello world

hello

范例3:只能追加,不能删除,适用于日志

[root@localhost data]# chattr +a resolv.conf

[root@localhost data]# echo "123" >> resolv.conf

[root@localhost data]# echo "456" > resolv.conf

-bash: resolv.conf: Operation not permitted    #删除报错

[root@localhost data]# cat resolv.conf

......

hello

123

chattr 改变文件的扩展属性的更多相关文章

  1. chattr 改变文件、目录属性 (chmod、passwd等涉及文件修改的命令提示Operation not permitted)

    与chmod这个命令相比,chmod只是改变文件的读写.执行权限,更底层的属性控制是由chattr来改变的. lsattr查看文件或目录属性 chattr命令的用法:chattr [ -RVf ] [ ...

  2. 在PHP中操作文件的扩展属性

    在操作系统的文件中,还存在着一种我们可以自己定义的文件属性.这些属性不是保存在文件内容中,也不是直接可以通过 ls -al 所能看到的内容.它们可以将一个键值对信息永久得关联到文件上,一般现在的 Li ...

  3. linux中改变文件权限和属性

    Linux中,默认显示所有用户名的文件在/etc/passwd,用户组的信息在/etc/group 密码/etc/shadow chgrp改变文件所属用户组 chgrp [-R] 用户组名 文件或目录 ...

  4. touch 创建空文件或改变文件的时间戳属性

    1.命令功能 touch 改变文件时间属性或创建空文件. 2.语法格式 touch  [option]  file touch 选项 文件名 3. 选项参数说明 参数 参数说明 -a 仅改变文件的访问 ...

  5. mac下用xattr命令来删除文件的扩展属性

    mac下发现不能用记事本打开文本文件,ls -la 发现格式后面有个@ wenke-mini:changeServer wenke$ ls -la total 144 drwxr-xr-x  20 w ...

  6. 【linux命令】chgrp改变文件或目录的属组

    在lunix系统里,文件或目录的权限的掌控以拥有者及所诉群组来管理.可以使用chgrp指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以.Chgrp命令就是change group的 ...

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

    SYNOPSIS(总览) chattr [ -RV ] [ -v version ] [ mode ] files... DESCRIPTION(描述) chattr 修改文件在Linux第二扩展文件 ...

  8. chattr lsattr linux file system attributes - linux 文件系统扩展属性

    我们使用 linux 文件系统扩展属性,能够对linux文件系统进行进一步保护:从而给文件 赋予一些额外的限制:在有些情况下,能够对我们的系统提供保护: chattr命令用来改变文件属性.这项指令可改 ...

  9. Linux文件权限与属性详解 之 chattr & lsattr

    Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...

随机推荐

  1. 3D Computer Grapihcs Using OpenGL - 03 OpenGL Buffer Data

    本节绘制一个三角形,并讲解Buffer Object-缓冲对象 OpenGL的窗口坐标 屏幕中心为坐标原点,横向朝右为x正方向,纵向朝上为y正方向,最大值最小值分别为1,-1. Buffer Obje ...

  2. 转载:PICT使用教程(设计测试用例工具)

    原文:https://blog.csdn.net/quiet_girl/article/details/50699543 之前一篇写了正交设计助手的使用教程,与正交设计助手相比,个人觉得PICT的使用 ...

  3. 《SQL Server 2012 T-SQL基础》读书笔记 - 2.单表查询

    Chapter 2 Single-Table Queries GROUP BY之后的阶段的操作对象就是组(可以把一组想象成很多行组成的)了,HAVING负责过滤掉一些组.分组后的COUNT(*)表示每 ...

  4. optistruct对称约束设置

    如对YZ面对称,则在对称面处约束1 5 6自由度.

  5. r hive

    w r只能处理有限量的数据 pdf 467

  6. Ffmpeg AAC 编码错误 Input contains (near) NaN/+-Inf

    Ffmpeg AAC编码 如果传入参Frame的Sample Format 为 AV_SAMPLE_FMT_S16,会出现 错误提示 Input contains (near) NaN/+-Inf,需 ...

  7. Ajax 实现导出文件-支持批量

    个人感觉前端不行,好多东西记不住,所以只能将遇到的坎以及解决方案记录下,方便以后用到时查找. 首先:ajax不支持流,网上找了好多版本,感觉下面的方案不错,实验了下可行. 前端页面: <div ...

  8. Map 接口有哪些类

    Map接口 Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value:Map中的键值对以Entry类型的对象实例形式存在:建(key值)不 ...

  9. 如何在sql server数据库中建立主从表

    建立关联是通过外键引用实现的 例如建立一个学生表和班级表的关联,可以如下: create table class ( classid char(4) primary key not null, cla ...

  10. 关于staticmethod() 函数

    说实话,我就不知这个是干什么的. 菜鸟教程写的无需实例化, 自己可以调用自己. 在同一个类面我使用到了 因为一个类了, 我可能会方法间互相调用. 类中间使用.不加这个,就会报错.无法识别这个 orig ...