执行命令时我犯了一个错误并执行了(ubuntu 10)
sudo chmod 777 / -R # 好吧你可能会笑
现在我的所有文件系统都有 777 个许可,显然我不知道我的 1TB 驱动器中每个文件夹和文件的许可在哪里 :D
有什么办法可以恢复此状态吗?
提前致谢 !!!
答案1
哇......这太糟糕了......您现在能做的最好的事情就是备份您的个人数据并重新安装您的系统。
因为这可能不是你想听到的,所以第二好(也可能更痛苦)的做法是这样的:
for package in `dpkg -l | awk '{print $2}'`; do
apt-get install --reinstall $package
done
请注意,此修复纯属理论(我从未尝试过),但它将重新安装系统上的每个软件包(因为据我所知,apt
没有dpkg
像 RPM 这样的“修复权限”功能)。重新安装应该可以修复软件包中所有文件的权限。
此“修复”可能破坏其他东西,并且你可能仍然会有一些 777 的文件在周围徘徊不是任何包的一部分,因此您应该跟进find
所有模式 777 的内容并确保列表看起来合理。
答案2
尝试以下命令
rpm --setperms $(rpm -qa)
这会将所有权限重置为 rpm 数据库中存储的默认值。
或者,如果您想逐个包地获取更多的输出,请尝试:
for p in $(rpm -qa) ; do echo "$p" ; rpm --setperms $p ; done
这会仅有的恢复使用 rpm 安装的文件,而不是您手动创建的其他文件,或 /home 中的文件,或以 rpm 包以外的其他方式安装的文件。
如果您有完整备份,那么您可以从那里获取权限。