Linux系统 chattr 文件加锁与解锁
chattr命令用来改变文件属性,它可以改变存放在ext2文件系统上的文件或目录属性,这些属性共有8种模式

  • a ——让文件或目录仅供附加用途;
  • b ——不更新文件或目录的最后存取时间;
  • c ——将文件或目录压缩后存放;
  • d ——将文件或目录排除在倾倒操作之外;
  • i ——不得任意改动文件或目录;
  • s ——保密性删除文件或目录;
  • S ——即时更新文件或目录;
  • u ——预防意外删除;
以/etc/passwd文件为例:
先查看当前状态
[root@localhost ~]# lsattr /etc/passwd
---------------- /etc/passwd
使用chattr锁定 编辑权限
[root@localhost ~]# chattr +i /etc/passwd
[root@localhost ~]# lsattr /etc/passwd
----i----------- /etc/passwd
以上输出 “ i ”表示该文件已经是无法改动的状态了
可以试一下rm,mv都已经无法改动包括vi,vim也无法编辑
[root@localhost ~]# rm -rf /etc/passwd
rm: 无法删除"/etc/passwd": 不允许的操作
[root@localhost ~]# mv /etc/passwd /root/
mv: 无法将"/etc/passwd" 移动至"/root/passwd": 不允许的操作
使用chattr解除锁定 编辑权限
[root@localhost ~]# chattr -i /etc/passwd
[root@localhost ~]# lsattr /etc/passwd
---------------- /etc/passwd
以上输出空表示该文件没有锁定可任意更改
[root@localhost ~]# rm -rf passwd 
[root@localhost ~]# mv /etc/passwd /root/
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  passwd
可以任意移动
[root@localhost ~]# mv passwd /etc/
[root@localhost ~]# rm -rf /etc/passwd
[root@localhost ~]# 
将文件移动回去,执行rm命令,可以直接删除。
对于一些关键的操作日志,例如用户admin家目录下的.bash_logout文件,不想用户自己能够清空,我们可以使用下面的命令来更改文件智能追加写入
[root@localhost ~]# lsattr /home/admin/.bash_logout 
---------------- /home/admin/.bash_logout
[root@localhost ~]# chattr +a /home/admin/.bash_logout 
[root@localhost ~]# lsattr /home/admin/.bash_logout
-----a---------- /home/admin/.bash_logout
以上输出 “ a ”表示该文件已经是只能追加写入的状态了
解锁操作
[root@localhost ~]# chattr -i /etc/passwd
Logo

更多推荐