最近一个客户在群里说他一不小心把某台业务服务器的根目录权限给改了,本来想修改当前目录,结果执行成了根目录。
# 预期执行
chown 4auser:4agroup ./ -R
# 最终执行
chown 4auser:4agroup . / -R
看到这里我顿感不妙!
果然,他接着在群里@了我,我只想说
但我没这么做,因为客户就是上帝啊...
作为一个运维搜索工程师,我第一步肯定是打开浏览器搜一下了,结果发现特别简单,解决了之后来水一篇文章。
只需用到getfacl
和setfacl
就行,下面用实验环境来模拟一下!
1、设备test001有data目录,data目录下的文件权限如下
2、模拟误操作
3、问题不大,从另一个设备test002中使用getfacl
导出一下系统文件的权限信息。
4、将文件拷贝到误操作设备test001,这时候大概率是不行的,因为test001的ssh服务已经挂了...
不慌,换个思路,从test001上拷test002的文件(前提是test001误操作后还没有断开)!
5、在test001使用setfacl
执行恢复
6、看下目录权限,已经恢复!
小结
1、不管是根目录还是某个目录的文件权限被误修改,都可以通过getfacl
和setfacl
来进行修复,建议在日常备份时候加上对getfacl
输出结果的备份,做到有备无患!
2、控制root
用户权限,日常维护使用最小权限操作
3、引入堡垒机等系统,定义高危指令清单,对于修改/删除类操作要进行审批!
小结
1、不管是根目录还是某个目录的文件权限被误修改,都可以通过getfacl
和setfacl
来进行修复,建议在日常备份时候加上对getfacl
输出结果的备份,做到有备无患!
2、控制root
用户权限,日常维护使用最小权限操作
3、引入堡垒机等系统,定义高危指令清单,对于修改/删除类操作要进行审批!
ps:
getfacl
和setfacl
的参数还有很多,大家可以自行搜索,搜搜更健康~
我是运维少年,欢迎关注我的同名微信公众号~