“chown -R root /” 我到底有多倒霉?

“chown -R root /” 我到底有多倒霉?

我在尝试更改 rails 应用程序公共文件夹的权限时意外执行了命令 chown -R root /。我认为这会更改 / 目录上所有文件夹的权限。所以我的问题是,这有多危险,事实上更好的问题是,有没有办法撤消这个?

答案1

缓解此问题的一种方法(不是解决问题,而是帮助您摆脱困境)是在相似的系统收集文件的适当所有权。我知道完全匹配的机会很小,但如果两个操作系统处于同一级别并且安装了类似的软件包,那么你可能会很幸运。

将文件权限收集到文件中后,您可以在自己的系统上运行一个进程,从好的系统中读取文件和权限/所有权,并将其替换到您的系统中。我在 Linux 上有几个小型的自制应用程序就是用来做这件事的。

例如

777*0*0*S*16*1334559119*1334532895*1361208513*/usr/lib32/*libgomp.so.1
644*0*0*F*67370*1359536382*1359374461*1359717843*/usr/lib32/*librt.a
644*0*0*F*59044*1334559119*1334532931*1355405098*/usr/lib32/*libgomp.so.1.0.0
644*0*0*F*1238*1359536382*1359374461*1359717843*/usr/lib32/*libBrokenLocale.a
777*0*0*S*17*1359536382*1359374460*1361208513*/usr/lib32/*libdl.so
644*0*0*F*905712*1334559116*1334533011*1355405098*/usr/lib32/*libstdc++.so.6.0.16
777*0*0*S*15*1333306601*1323929512*1361208513*/usr/lib32/*libbz2.so.1.0
777*0*0*S*24*1359536382*1359374460*1361208513*/usr/lib32/*libnss_files.so
644*0*0*F*1128*1359536382*1359374462*1359717843*/usr/lib32/*crt1.o

RWX * UID * GID * 其他内容 * 目录 * 文件名

答案2

首先,如果命令仍在运行,请停止它!

现在一切都将属于根,这是相当成问题的。

您应该尝试从最新的备份中恢复信息。

在检查所有正在运行的应用程序以及用户在启动时启动它们之前,不要重新启动系统,这一点也很重要。如果你这样做,其中一些应用程序可能会由于权限问题而无法正常启动。

祝你好运。

答案3

非常,但不完全。

“非常”的意思是,如果命令确实通过了,您的安全就被搞砸了。您现在不知道哪些路径属于哪些所有者,以及谁应该被允许做什么。

“不完全是”的意思——你确定你在执行此操作时是 root 吗?并且命令是否一直执行到最后?如果你在看到它后立即取消了它,那么你可能很幸运,修复成本可能很低。如果你不是 root,这个命令应该无法执行,除非你执行了类似sudo ....

对此没有单一的补救措施。如果您有备份,则可以恢复到该备份。您可能需要检查备份中的所有权并应用它们。如果您一直在使用 rootkit(例如 rkhunter)检查器,它可能有一个最基本的所有权列表,并且可能能够修复它。(不太可能)。

答案4

如果您使用的是 OSX,Apple 会在磁盘实用程序中提供恢复功能来解决此问题。如果您使用的是 Linux 发行版,我确信您必须手动重新设置所有权限。无论哪种情况,拍拍手,不要再这样做了

相关内容