前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个让rm -rf 都头疼的命令

一个让rm -rf 都头疼的命令

作者头像
互联网老辛
发布2020-06-04 14:44:01
1.1K0
发布2020-06-04 14:44:01
举报
文章被收录于专栏:互联网老辛互联网老辛

运维经常用rm -rf / 来调侃自己,但事实上现在的安全机制下,rm -rf / 并不起作用,你看:

1[root@zmedu-17 ~]# rm -rf /
2rm: 在"/" 进行递归操作十分危险
3rm: 使用 --no-preserve-root 选项跳过安全模式

我们需要加上后面的 --no-preserve-root 跳过安全模式才能删除/

不过我们想删除/上的部分不在使用中的文件还是可以的比如 /*

1[root@zmedu-17 ~]# rm -rf /*
2rm: 无法删除"/boot/efi": 设备或资源忙
3rm: 无法删除"/dev/hugepages": 设备或资源忙
4rm: 无法删除"/dev/mqueue": 设备或资源忙
5rm: 无法删除"/dev/pts/2": 不允许的操作
6rm: 无法删除"/dev/pts/1": 不允许的操作
7rm: 无法删除"/dev/pts/0": 不允许的操作
8rm: 无法删除"/dev/pts/ptmx": 不允许的操作
9rm: 无法删除"/dev/shm": 设备或资源忙

但如果是普通文件可就没有这么好运了,普通文件被删除了,在ext4文件系统上我们可以借助工具基于Inode号,把文件找回来,但是里面的空文件却无法在恢复。

虽然我们很小心,但依旧有删除文件的可能,这就像男人之于女人,带着作案工具,就总有做案的可能,除非变成公公。

今天我就给大家介绍一个命令,他的出现相当于给重要的文件在你备份的同时又加了一把锁,确保文件不会被误删除或者修改。

祭出命令:chattr: 锁定文件,锁定后,不能删除也不能修改

参数:

+a 只能给文件添加内容,但是删除不了

-d: 不能删除

+i :加锁,文件不能删除,不能修改,也无法移动

查看加锁:lsattr

解锁 :-i 在这里的减号表示接触

我们来对/etc/passwd来使用

(因为公众号限制,今天苹果手机看代码可能会跳行)

 1[root@zmedu-17 ~]# lsattr /etc/passwd #查看原始权限
 2---------------- /etc/passwd
 3[root@zmedu-17 ~]# chattr +i /etc/passwd   #加锁
 4[root@zmedu-17 ~]# lsattr /etc/passwd    #查看加锁后权限
 5----i----------- /etc/passwd
 6[root@zmedu-17 ~]# rm -rf /etc/passwd #删除测试
 7rm: 无法删除"/etc/passwd": 不允许的操作
 8[root@zmedu-17 ~]# mv /etc/passwd /root/  #移动测试
 9mv: 无法将"/etc/passwd" 移动至"/root/passwd": 不允许的操作
10[root@zmedu-17 ~]# echo aaa >> /etc/passwd  #修改文件内容测试
11-bash: /etc/passwd: 权限不够

是不是成功的阻止了你误删除文件的操作。当然你说按照下面的操作来做,然后说自己是误操作删除了文件,我也信:

1[root@zmedu-17 ~]# lsattr /etc/passwd  #查看是否加锁
2----i----------- /etc/passwd     
3[root@zmedu-17 ~]# chattr  -i /etc/passwd  #去掉加锁权限
4[root@zmedu-17 ~]# lsattr /etc/passwd   #查看是否已经去掉
5---------------- /etc/passwd
6[root@zmedu-17 ~]# rm -rf /etc/passwd  #特意误删除一下

只要想删掉,总会有办法的。还有没有方法更安全一点呢?当然

我们可以隐藏掉chattr

1[root@zmedu-17 ~]# which chattr   #查看命令目录
2/usr/bin/chattr
3[root@zmedu-17 ~]# mkdir /opt/yc  #创建yc目录
4[root@zmedu-17 ~]# mv /usr/bin/chattr /opt/yc/ #把命令拷贝
5[root@zmedu-17 ~]# cd /opt/yc/     #进入yc目录
6[root@zmedu-17 yc]# mv chattr h   #使用别名把命令隐藏
7[root@zmedu-17 ~]# /opt/yc/h +i /etc/passwd  #h就是chattr命令
8[root@zmedu-17 ~]# lsattr /etc/passwd
9----i----------- /etc/passwd

想要恢复的话,拷贝回去就可以了

1[root@zmedu-17 yc]# mv h /usr/bin/chattr
2[root@zmedu-17 yc]# chattr -i /etc/passwd

结语

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据架构师专家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档