意外 chown -R user:group /* 之后,有什么方法可以恢复 CentOS 文件系统的默认所有权?
在重新安装之前,我想问一下,这样也许可以节省一些时间。我正在设置一台新的开发机器(幸好不是生产机器),打字太快了,或者漏掉了 . 键之类的。我一发现这个问题就试图取消,但我的 /bin /boot /dev 等都已经更改了。
还有希望吗,或者只是重新安装并高兴它不是一台生产机器?
答案1
“只需重新安装并高兴它不是一台生产机器吗?”
是的。
答案2
rpm -a --setugids
答案3
如果你恰好有该机器的精确克隆,则可以使用另一台机器作为模型来恢复权限。例如:
server1:# find / /usr /home -xdev | xargs getfacl -Pp > /tmp/permissions_from_server1
server2:# setfacl --restore=/tmp/permissions_from_server1
-xdev
告诉寻找留在一个文件系统上。- 大写
-P
代表物理行走;即:忽略符号链接。 - 小写字母
p
保留前导斜杠。如果没有此开关,getfacl
则默认行为是删除前导斜杠,从而导致恢复失败。
YMMV,这是一个起点。
答案4
重新安装最终会更简单,这也是我所采用的方法。如果这是一台生产服务器,而您没有备份,那么您的首要任务就是重新获得 root 权限,因为/bin/su
和/usr/bin/sudo
可能不再起作用。
以 root 身份在本地登录,重置这些二进制文件的所有权,然后开始处理您立即看到的错误,例如库不工作等。
在类似的机器上,您可以使用 shell/Perl/Python 脚本构建各个系统目录中的文件列表,然后在受影响的系统上反向运行该脚本,以授予文件适当的所有权。
这并非世界末日,尽管已经非常接近了,但确实会让人非常痛苦。