从系统范围的chown恢复?

我有一个Linux Web服务器与多个网站托pipe与CPanel。 我在访问一个网站时遇到了麻烦,所以我运行了这个命令: chown -R root:root /home/evalreal/. 在等待命令时,我开始看到一堆错误。 错误类似于/home/evalreal/public_html/../virtfs/home/*Other website folders* Could not be accessed

所以,我搞砸了我的命令,并将这些业主应用于大量的我/

我的网站出现故障,直到我从备份中重置他们的权限。 我的/ tmp目录和/ var / lib / mysql目录目前都在运行777。 我需要做一些类似的事情来阻止Exim。 我不知道有什么变化,但是因为我是当我执行命令的时候,我怀疑这是很多的。

最终我需要从备份恢复整个系统? 如果我一天左右不能这样做呢?

首先,看看光明的一面:至less你备份。
很多在你的情况下最终结束的人不会,当我们告诉他们最好的办法就是从他们(不存在的)备份中恢复的时候,他们会变得非常暴躁。


Ultimately I need to have the entire system restored from backups right?
这可能是最方便的解决scheme(如果您可以恢复只是可能更好的权限,因为您不会冒失去任何工作的风险)。

您的其他选项是确定哪些文件已受到影响,并手动重置其所有权。 虽然这里有更多的错误余地:目录树是recursion的,所以你可以使用find -user root上面chown所在的一个级别来帮助你sorting损坏。
(这只适用于你停止chown – 如果它贯穿整个系统,那么你就可以真正地洗净,备份是你最好的select。)


What if I can't do that for a day or so?
那么你会在一天左右(或至less受到损害)。
在系统pipe理中没有捷径(当然也有,但在这种情况下并不是这样),你需要撤销你所做的所有权更改,无论是手动还是从备份还原。

关于从voretaq7备份中恢复的重要build议,你不要提到你正在使用的发行版; 如果是基于rpm的话,你可以以root身份执行:

 for p in $(rpm -qa); do rpm --setperms $p; done for p in $(rpm -qa); do rpm --setugids $p; done 

这将至less将一切都恢复到包装提供的文件/目录的正常状态。