我打算将目录的所有权更改为apache:apache ,但是我最终运行了:
chown -R apache:apache /
坏! 很坏! 当它开始说我知道发生了什么事情时,
chown:更改`/ proc / 2694 / fd / 48'的所有权:权限被拒绝
那时我停止了一切(Ctrl + C)。
我目前的系统是运行CentOS 5的服务器运行virtualbox。这个问题发生在虚拟机内部。
目前,一切似乎都在起作用,但是我还没有重启系统,老实说,如果我做了什么,恐怕会打破。
我不知道chown的命令,我应该担心,并假设重新启动后会有什么事情会中断吗? 有没有办法恢复forms这个问题,而不必依赖备份? 我确实有一个每天一个,但我认为可能有一个更简单的出路。
有一个旧的备份将是一件好事,但恕我直言,这足以能够提取所有权数据。
我会这样做:
首先,做一个当前状态的备份。
然后,根据RPMDB恢复原始属性。 这可能会修复你的很多文件
要识别和修复其余的文件,find所有仍然存在这个问题的文件。 这些文件属于apache:apache ,并在/proc之前的“search顺序”中。 也许你做
ls -U /
首先得到/proc之前的根级别条目列表(我想这是你取消进程的地方)。
然后做一个
find /foo /bar /baz -user apache -group apache
用前面确定的条目replacefoo , bar , baz 。 将find的输出redirect到一个文件。
从备份中提取给定文件的所有权数据并将其应用于文件。
rpm --setugids将恢复传递给它的包的所有权。 通过-a恢复所有包。 您可能还需要使用--setperms来恢复setuid / setgid权限。
诚实地说,在这一点上安排从上一次备份进行的正确恢复是最简单的。 幸运的是,您仍然可以执行另一个最终的备份来保存当前的用户数据。 然后恢复您的旧备份,最后从最终备份恢复您的用户/客户数据,确保您保留每组文件的权限。
既然你是幸运聪明的人之一,已经实施了每日备份,这是我的build议:
如果您可以直接访问您的备份目录,则可以使用该目录从所有文件中删除权限。 例如,Bacula将元数据存储在数据库中,可以使用SQL查询查看文件数据。
还可以将所有文件恢复到单独的位置,并从那里读取文件系统以确定适当的权限。
对于系统上的每个文件,您都有chown(find / -user apache -group apache),请检查备份上相应的文件。 如果存在,则恢复用户和组。 如果不存在,请将其标记以供日后查看,然后继续。
这个过程将保持你所有的数据是最新的,并防止一两天的工作。 RPM数据库权限还原是一个好主意,但是在备份的位置,您可以一次完成更大程度的工作。