有时候你发现用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]这些字符组合的,这部分是用来控制文件的
属性。

+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
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

去掉属性i的命令

# chattr -i /etc/resolv.conf

再次lsattr /etc/resolv.conf会显示如下:

------------- /etc/resolv.conf

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

引自:http://www.ha97.com/5172.html

【Linux安全】chattr命令锁定账户敏感文件相关推荐

  1. chattr命令锁定文件

    使用chattr命令锁定文件(以 /etc/resolv.conf./etc/hosts 两个文件为例) 1)语法格式: chattr +i 文件名 #锁定文件(无法修改.删除.追加等) chattr ...

  2. linux命令dd创建虚拟硬盘,每日一题.PYTHON如何模拟LINUX的dd命令快速创建大文件?...

    原文数据: 无 具体要求: 1. 模拟Linux的dd命令快速创建大文件 代码实现: # -*- coding: utf-8 -*- """ # # Authors: l ...

  3. linux dd 截文件,Linux使用dd命令快速生成大文件(转)

    dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero ...

  4. Linux 下从命令行打开pdf文件和html文件的命令

    Linux 下从命令行打开pdf文件和html文件的命令 [日期:2012-06-18] 来源:Linux社区 作者:hipercomer [字体:大 中 小] 如果你经常工作在Linux终端下,某个 ...

  5. 非命令行linux安装zip,如何在Ubuntu 18.04 Bionic Beaver Linux上使用命令行从ZIP文件安装Gnome Shell Extensions...

    目的 目的是在Ubuntu 18.04 Bionic Beaver Linux上使用命令行从ZIP文件安装Gnome Shell Extensions.使用命令行从ZIP文件安装Gnome Shell ...

  6. Linux下用命令行彻底删除文件

    一.Linux下用命令行彻底删除文件 Linux下一般会使用删除键或者rm命令.将文件扔到垃圾箱.但是,这些方法并没把文件从我们的电脑里彻底删除,只是把文件隐藏起来,让用户看不见而已. 1. shre ...

  7. linux 使用rename命令批量重命名文件

    linux 使用rename命令批量重命名文件 命令格式: Usage: rename [-v] [-n] [-f] perlexpr [filenames] 参数说明: v 显示文件重命名的细节 n ...

  8. Linux dd命令截取文件,linux使用dd命令快速生成大文件

    dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero ...

  9. Linux篇之命令行下载远程文件curl命令的介绍与使用

    一.curl简介 通常情况下,当我们不想在本机下载文件,上传至服务器时,觉得这样过于麻烦,步骤繁琐. 那么该怎么办呢? 在Linux中,服务器下载文件,提供了一种curl命令,它可以实现在Linux中 ...

  10. linux命令删除sh文件,Linux下面使用命令如何运行.sh文件的两种解决办法 删除windows.old文件夹的解决...

    延伸:删除windows.old文件夹的解决办法 描述:...行",这样就以管理员身份运行了cmd. 然后就很简单啦: 1 rd /S /Q c:\windows.old 注意,运行该命令后 ...

最新文章

  1. OpenHarmony开源项目
  2. 【论文写作】网上选课系统中模块设计如何写
  3. redis底层数据结构--简单动态字符串 链表 字典 跳跃表 整数集合 压缩列表
  4. 使django与数据库保持长连接
  5. 快逸报表之在IE打印问题
  6. 迅雷 华为 手机 php,荣耀路由Pro怎么用手机远程下载迅雷任务
  7. DSP之定时器理论笔记
  8. mybatis学习4
  9. Sublime Text 4 首个稳定版终于来了:支持 GPU 渲染、兼容旧版本、Python API 升级
  10. proftpd java_基于 proftpd 配置加密 FTP
  11. Android股票列表联动
  12. 全国大学生数学竞赛公式(全)
  13. C++ - sstream标准库(串流控制)
  14. 人工智能导论:清览作业
  15. arm rtx教程_【RTX操作系统教程】第4章 RTX操作系统介绍
  16. TP4333TPOWER应急灯同步充放移动电源IC解决方案
  17. 华为机试真题 C++ 实现【模拟商场优惠打折】【2022.11 Q4 新题】
  18. Liferay Portal 7.2 CE GA1 发布
  19. jni_generator.py
  20. Java多线程 解决private对象逸出--返回副本

热门文章

  1. Hibernate读书笔记-----Hibernate的关联映射之N-1关联映射
  2. 开源的读取Excel文件组件-ExcelDataReader
  3. mysql的匹配模式
  4. jq实现跟随鼠标点击移动的下划线效果
  5. 简述JDBC原理 + 在JAVA中异常是什么 + throws 与 throw 区别 + 简单解释以下JAVA中的多态...
  6. bzoj2151: 种树
  7. MIT6.006Lec03:插入排序,归并排序,递归树
  8. 【Xcode】编辑与调试
  9. 使用 Kubeadm 安装部署 Kubernetes 1.12.1 集群
  10. 升级openssh漏洞