在Linux中用chattr和lsattr命令管理文件和目录属性

PS:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux系统都是2.6以上内核了。通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…
最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的
属性。

有两个命令 lsattrchattr 用来管理属性。下面是常用属性的列表。


属性


描述


a (append)


允许在文件中进行追加操作


A


这个属性不允许更新文件的访问时间


c (compressed)


启用这个属性时,文件在磁盘上会自动压缩


d (dump)


不能使用dump命令备份文件


D


设置了文件夹的D属性时,更改会在同步保存在磁盘上


e (extent format)


它表明,该文件使用磁盘上的块的映射扩展


i (immutable)


在文件上启用这个属性时,我们不能更改、重命名或者删除这个文件


j (journaling)


设置了这个属性时,文件的数据首先保存在日志中,然后再写入文件


S (synchronous)


设置了这个属性时,变更或更改同步保存到磁盘上

chattr属性中可以使用的不同选项 :

  • -R 递归地修改文件夹和子文件夹的属性
  • -V chattr命令会输出带有版本信息的冗余信息
  • -f 忽略大部分错误信息


+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂
载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

应用举例:

1、用chattr命令防止系统中某个关键文件被修改:
# chattr +i /etc/resolv.conf

然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted
的结果。vim编辑该文件时会提示W10: Warning: Changing a readonly
file错误。要想修改此文件就要把i属性去掉: chattr -i /etc/resolv.conf

# lsattr /etc/resolv.conf
会显示如下属性
----i-------- /etc/resolv.conf

2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
# chattr +a /var/log/messages

时间: 2024-10-27 19:08:42

在Linux中用chattr和lsattr命令管理文件和目录属性的相关文章

Linux的chattr与lsattr命令介绍

Linux的chattr与lsattr命令介绍 命令lsattr是用来查看文件.目录属性的,命令chattr是用来对其做更改的.与chmod这个命令相比,chmod只是改变文件的读写.执行权限,更底层的属性控制是由chattr来改变的. chattr命令语法: chattr [+-=][Asaci][文件或者目录名] 注:+表示增加,-表示减少,=表示设定. A:增加该属性后,表示文件或者目录的atime将不可修改. s:增加该属性后,会将数据同步写入磁盘中. a:增加该属性后,表示只能追加不能

linux的chattr和lsattr命令

chattr是用来改变文件.目录属性.chattr命令的作用很大,其中一些功能是由linux内核版本来支持的.通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录.lsattr是用来显示chattr命令设置的文件属性.与chmod相比,chmod只是改变文件的读写,执行权限,更底层的属性控制是由chattr来改变的. chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files… 最关键的是在[mode]部分,[mode

RH124-02 通过命令管理文件和目录

第二章 通过命令管理文件和目录 课程目标: 认识重要的系统目录 了解绝对路径和相对路径 通过命令创建,拷贝,移动,删除文件和目录 使用通配符匹配一个或多个文件 2.1  Linux文件系统的结构 Linux一切皆为文件 目录结构 常见的重要目录说明: /usr 安装的软件,共享库,程序数据.重要的子目录有 /usr/bin用户命令 /usr/sbin管理员命令 /usr/local本地自定义安装的软件(一般为通过源代码安装的软件) /etc 系统,软件的配置文件 /var 存放系统引导启动时产生

利用linux的df和du命令查看文件和目录的内存占用

文章目录 当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力. du可以查看文件及文件夹的大小. 两者配合使用,非常有效.比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结. 做后台开发经常遇到磁盘占满的情况,毕竟不断有日志在生成,不断有文件在备份,如果长时间不管的话,总有一天会占用满. 题主有一天在发布java项目的时候,就发现提示 1 No space

(总结)Linux的chattr与lsattr命令详解

PS:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux系统都是2.6以上内核了.通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录.chattr命令不能保护/./dev./tmp./var目录.lsattr命令是显示chattr命令设置的文件属性. 这两个命令是用来查看和改变文件.目录属性的,与chmod这个命令相比,ch

Linux的chattr与lsattr命令详解

有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux系统都是2.6以上内核了.通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录.chattr命令不能保护/./dev./tmp./var目录.lsattr命令是显示chattr命令设置的文件属性. 这两个命令是用来查看和改变文件.目录属性的,与chmod这个命令相比,chmod

[转]Linux的chattr与lsattr命令详解

转自:http://www.cnblogs.com/yangxia-test/archive/2013/05/24/3096410.html 这两个命令是用来查看和改变文件.目录属性的,与chmod这个命令相比,chmod只是改变文件的读写.执行权限,更底层的属性控制是由chattr来改变的. chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]

Linux的chattr与lsattr命令

某个文件,强制删除不了,改文件权限也改不了 chmod 777 ".user.ini" set attrs for /home/wwwroot/www.fangbei.org/.user.ini: permission denied rm "/home/wwwroot/www.fangbei.org/.user.ini" rm /home/wwwroot/www.fangbei.org/.user.ini: permission denied 当然如是出现上述的问题

linux基础命令-管理文件和目录

今天学习了对Linux命令的理解和Linux系统中对文件和目录进行管理的基础命令. 在Linux系统中需要通过命令来实现某一项功能,Linux命令的执行需要依赖于Shell命令解释器.Shell是在Linux系统中运行的一种特殊程序,Shell解释器位于用户和内核之间,Shell接收到用户的命令并进行解释,然后将需要执行的的操作传递给内核来执行.根据Linux命令和Shell程序的关系,分为内部命令和外部命令. Linux命令对大小写敏感,格式:命令字 [选项] [参数] 以下辅助操作可以提高输