Linux命令 - chattrlsattr

Posted Bo_OuYang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令 - chattrlsattr相关的知识,希望对你有一定的参考价值。

            系统运维人员有时候可能会遇到通过 root 用户都不能修改或者删除某个文件的情况,产生这种情况的大部分原因可能是这个文件被锁定了。在Linux下锁定文件的命令是chattr,通过这个命令可以修改 ext2、ext3、ext4 文件系统下文件属性,但是这个命令必须有超级用户 root 来执行。和这个命令对应的命令是 lsattr,这个命令用来查询文件属性。

          

chattr修改文件或目录属性:

          chattr   [-RV]         [mode]    文件或目录

-R:       递归修改所有的文件及子目录

-V:       详细显示修改内容,并打印输出


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

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

=              更新为指定参数

a              即append,设定该参数后,只能向文件中添加数据,而不能删除。常用于服务器日志文件安全,只有root用户才能设置这个属性

i                即immutable,设定文件不能被修改、删除、重命名、设定链接等,同时不能写入或新增加内容。这个参数对于文件系统的安全设置有很大帮助

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

s               安全的删除文件或目录,即文件被删除后硬盘空间被全部收回

u               于s参数相反,当设定为u时,系统会保留其数据块便以后能够恢复删除这个文件。

这些参数中,最常用到的是a和i,a参数常用于服务器日志文件安全设定而i参数更为严格,不允许文件进行任何操作,即使是root用户


lsattr  用来查询文件或目录属性:

                   lsattr   [-adRvV]   文件或目录

-a                             列出目录中的所有文件,包括以. 开头的文件

-d                              显示指定目录的属性

-R                            以递归的方式列出目录下所有文件及子目录以及属性值

-v                               显示文件或目录版本




chattr     -R    +i            /bin   /boot      /lib    /sbin

chattr     -R    +i              /usr/bin         /usr/include    /usr/lib    /usr/sbin

chattr             +i              /etc/passwd       /etc/shadow             /etc/hosts   /etc/resolv.conf   /etc/fstab  /etc/sudoers

chattr             +a           /var/log/messages            /var/log/wtmp


       对重要的文件进行加锁,虽然能够提高服务器的安全性,但是也会带来一些不便,例如,在软件的安装、升级时可能需要去掉有关目录和文件的immutable属性和append-only属性,同时,对日志文件设置了 append-only 属性,可能会使日志轮换(logrotate)无法进行。因此,在使用 chattr 命令前,需要结合服务器的应用环境来权衡是否需要设置 immutable 属性和append-only 属性。

     另外,虽然通过 chattr 命令修改文件属性能够提高文件系统的安全性,但是它并不适合所有的目录。chattr 命令不能保护/、/dev、/tmp、/var 等目录。

      根目录不能有不可修改属性,因为如果根目录具有不可修改属性,那么系统根本无法工作:/dev 在启动时,syslog 需要删除并重新建立/dev/log 套接字设备,如果设置了不可修改属性,那么可能出问题;/tmp 目录会有很多应用程序和系统程序需要在这个目录下建立临时文件,也不能设置不可修改属性;/var 是系统和程序的日志目录,如果设置为不可修改属性,那么系统写日志将无法进行,所以也不能通过 chattr 命令保护。

       虽然通过 chattr 命令无法保护/dev、/tmp 等目录的安全性,但是有另外的方法可以实现



以上是关于Linux命令 - chattrlsattr的主要内容,如果未能解决你的问题,请参考以下文章

Linux 命令:chattrlsattr

Linux常用命令——chattrlsattr

第5章 用户身份与文件权限

面试题目

十个你可能不曾用过的Linux命令

如何获取某个linux命令的所有可能值?