我们在Centos7系统上有一个小小的灾难。 configuration脚本中的一个bugrecursion地将/,/ bin和/ usr / bin设置为400个权限。 这意味着像chmod,mount和其他几乎所有其他的基本命令是不可执行的。 我非常有信心,我可以通过从一个现场的USB启动来解决这个问题,但我必须做一个。 另外,损坏的机器是我们的路由器,所以当它下降,我们失去了我们的互联网接入。
我有另一个与Linux的X64二进制文件的chmod,bash,安装和其余的盒子,有没有一个聪明的方式来执行它们从USB(或networking或其他),而无需重新启动?
在centos7 64位上,ld程序位于/lib64/ld-2.17.so。 除非另有centos7系统运行,否则我不会find它。 我使用二进制ld-2.17.so来执行/ bin / chmod,并修复/ bin,/ usr / bin和/ bin / chmod。 这足以让我开始纠正一切。 在另一个centos系统上,我跑了:
for dir in /* ; do getfacl -pR "$dir" > /root/"$dir"_acls.txt ; done
这给了我什么是正确的权限是我的发行版的参考。 我将这些txt文件复制到损坏的系统中,然后将bin,boot,dev等等和家里的文件复制到一起
for perm in /root/perms/*_acls.txt ; do setfacl --restore $perm ; done
这在文件中并不完全匹配,但是比单独执行每个文件或每个文件要好得多。