可怕的 chown 之后在 CentOS 中恢复默认所有权

可怕的 chown 之后在 CentOS 中恢复默认所有权

可能重复:
如何从整个文件系统的错误权限设置中恢复 RHEL 4.3 服务器?

意外 chown -R user:group /* 之后,有什么方法可以恢复 CentOS 文件系统的默认所有权?

在重新安装之前,我想问一下,这样也许可以节省一些时间。我正在设置一台新的开发机器(幸好不是生产机器),打字太快了,或者漏掉了 . 键之类的。我一发现这个问题就试图取消,但我的 /bin /boot /dev 等都已经更改了。

还有希望吗,或者只是重新安装并高兴它不是一台生产机器?

答案1

“只需重新安装并高兴它不是一台生产机器吗?”

是的。

答案2

rpm -a --setugids

答案3

如果你恰好有该机器的精确克隆,则可以使用另一台机器作为模型来恢复权限。例如:

server1:# find / /usr /home -xdev | xargs getfacl -Pp > /tmp/permissions_from_server1


server2:# setfacl --restore=/tmp/permissions_from_server1
  • -xdev告诉寻找留在一个文件系统上。
  • 大写-P 代表物理行走;即:忽略符号链接。
  • 小写字母p保留前导斜杠。如果没有此开关,getfacl则默认行为是删除前导斜杠,从而导致恢复失败。

YMMV,这是一个起点。

答案4

重新安装最终会更简单,这也是我所采用的方法。如果这是一台生产服务器,而您没有备份,那么您的首要任务就是重新获得 root 权限,因为/bin/su/usr/bin/sudo可能不再起作用。

以 root 身份在本地登录,重置这些二进制文件的所有权,然后开始处理您立即看到的错误,例如库不工作等。

在类似的机器上,您可以使用 shell/Perl/Python 脚本构建各个系统目录中的文件列表,然后在受影响的系统上反向运行该脚本,以授予文件适当的所有权。

这并非世界末日,尽管已经非常接近了,但确实会让人非常痛苦。

相关内容