我刚刚将每个文件的权限更改为 400,从而将我的 root 帐户(以及所有其他帐户,如果重要的话)完全锁定在 RHEL 5.4 之外。现在,我尝试运行的任何命令(包括 chmod 本身)都显示“权限被拒绝”。有没有什么办法可以恢复?我只能通过终端或 SSH 访问服务器。
(如果有人关心它是怎么发生的,我当时正在运行一个强化脚本,其中一行应该更改 /etc 目录中某些配置文件的权限。它有几个变量尚未设置,因此该命令本质上评估为
chmod -R 0400 /*
哎哟!这肯定是一个很好的教训,让我以后更加仔细地检查脚本,但是现在我能做什么呢?
答案1
你需要启动到单用户模式才能将权限改回原来的状态林基
现在的问题是“我的权限应该是什么?好吧,老实说,如果您可以承受停机时间,那么重新安装可能是您最好的行动方案。
答案2
我认为将现有系统启动到单用户模式不会起作用,因为它仍将启动到具有损坏权限的系统。如果您有 RHEL 安装 CD,您可以从该 CD 启动并在它为您提供选项时输入“linux rescue”。然后它应该找到您现有的操作系统,并将其挂载为 /mnt/sysimage。从此时起,您应该能够使用类似以下内容更正 rpm 包拥有的文件:
for PKG in `rpm --dbpath /mnt/sysimage/var/lib/rpm qa`
do
rpm --root /mnt/sysimage --dbpath /mnt/sysimage/var/lib/rpm --setperms $PKG
done
我还没有尝试过,所以如果这不起作用,你至少可以手动设置 /mnt/sysimage 下文件的权限。