chattr的常用参数详解
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
在实际生产环境中,有的运维工程师不得不和开发和测试打交道,在我们公司最常见的就是部署接口。每天每个人部署的接口10~20个不等,测试有时候会我们我们要服务器的账号,有的时候实在忙不过来了她们也会自己去部署,但是我们会突然在讨论群中发现有人说:”谁删除了我的xx库信息“,”怎么xx平台不能用了,刚刚还是好好的呢”等等一些列的话。最后查明原因是有人替换了“platform.lua”这个配置文件。这个是我们测试环境中的一个配置文件而已。最后有个解决办法就是用chattr这个命令来控制对这个配置文件的增删改查。lsattr 这个命令chattr对某个文件设置的属性。
一.chattr命名格式
[OPTIONS]:
1.选项“i”:
如果对文件设置i属性,那么允许对文件进行删除,改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。
2.选项“a”:
如果对文件设置a属性,那么只能在文件中总价数据,但是不能删除也不能修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除哟。
二.查看文件系统属性
![](https://images2017.cnblogs.com/blog/795254/201710/795254-20171008133228481-481178146.png)
1.查看某个文件的系统属性。
![](https://images2017.cnblogs.com/blog/795254/201710/795254-20171008133255371-1180348493.png)
2.查看某个目录的系统属性
![](https://images2017.cnblogs.com/blog/795254/201710/795254-20171008133318887-928831513.png)
实际生产环境中,我们用到最常用的就这2个参数,其他的参数不常用,以下是我百度出来的chattr中文解释,如果想要获得更多信息,可以通过# man chattr 命令来查看英文解释。
1 + :在原有参数设定基础上,追加参数。 2 - :在原有参数设定基础上,移除参数。 3 = :更新为指定参数设定。 4 A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。 5 S:硬盘I/O同步选项,功能类似sync。 6 a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。 7 c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。 8 d:即no dump,设定文件不能成为dump程序的备份目标。 9 i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。10 j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。11 s:保密性地删除文件或目录,即硬盘空间被全部收回。12 u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。13 各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。
关于lsattr的常用参数如下:
1 OPTIONS 2 -R Recursively list attributes of directories and their contents. #递归列出目录的属性及其内容。 3 4 -V Display the program version. #显示程序版本。 5 6 -a List all files in directories, including files that start with `.'. #列出目录中的所有文件,包括以“.”开头的文件。 7 8 -d List directories like other files, rather than listing their contents. #d列出与其他文件一样的目录,而不是列出它们的内容。 9 10 -v List the file's version/generation number. #v列出文件的版本/生成编号。