linux让文件不可变更

Posted on Posted in command
Tips: 本文创建于2015年5月22日,已超过 2 年,内容或图片可能已经失效!
文章目录[隐藏]

使用chattr来让Linux中的文件不可变更
chattr的基本语法

  1. $ chattr [-RVf] [操作符][标志位] 文件...  

其中操作符可以是"+"(把选定的标志位添加到标志位列表)、"-"(从标志位列表中移除选定的标志位)、或者"="(强制使用选定的标志位)。

下面是一些可用的标志位。

  • a: 只能以追加模式打开。
  • A: 不能更新atime(文件访问时间)。
  • c: 当被写入磁盘时被自动压缩。
  • C: 关掉"写时复制"。
  • i: 不可变更。
  • s: 通过自动归零来安全删除。(一般情况文件被删后内容不会被修改,改标志位会使得文件被删后原有内容被"0"取代)

"不可变更"标志位
为了让一个文件不可变更,你需要按照如下方法为这个文件添加"不可变更"标志位。例如,对/etc/passwd文件做写保护:

  1. $ sudo chattr +i /etc/passwd  

注意设置或取消一个文件的"不可变更"标志位是需要root用户权限的。现在检查该文件"不可变更"标志位是否被添加上了。

  1. $ lsattr /etc/passwd  

一旦文件被设置为不可变更,任何用户都将无法修改该文件。即使是root用户也不可以修改、删除、覆盖、移动或者重命名这个文件。如果你想再次修改这个文件,需要先把"不可变更"标志位取消了。

用如下命令取消"不可变更"标志位:

  1. $ sudo chattr -i /etc/passwd  

0

如果你想让一个目录(比如/etc)连同它下边的所有内容不可变更,使用"-R"选项:

  1. $ sudo chattr -R +i /etc  

"只可追加"标志位

另一个有用的的标志位是"只可追加",它只允许文件内容被追加的方式修改。你不能覆盖或者删除一个设置了"只可追加"标志位的文件。这个标志位在你想避免日志文件被意外清理掉的情况很有用。

和"不可变更"标志位类似,你可以使用如下命令让文件变成"只可追加"模式:

  1. $ sudo chattr +a /var/log/syslog  

注意当你复制一个"不可变更"或者"只可追加"的文件到其他地方后,新文件不会保留这些标志位!

» 转载请注明来源:若我若鱼 » linux让文件不可变更

Leave a Reply

Your email address will not be published. Required fields are marked *

five × three =