![“chown -R root /” 我到底有多倒霉?](https://linux22.com/image/1351809/%E2%80%9Cchown%20-R%20root%20%2F%E2%80%9D%20%E6%88%91%E5%88%B0%E5%BA%95%E6%9C%89%E5%A4%9A%E5%80%92%E9%9C%89%EF%BC%9F.png)
我在尝试更改 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 发行版,我确信您必须手动重新设置所有权限。无论哪种情况,拍拍手,不要再这样做了