如何恢复 chown 命令?

如何恢复 chown 命令?

如果我运行:

sudo chown -R user:user /

我可以将其恢复到运行之前的状态吗?

答案1

简而言之:不。

您需要从备份中恢复。 (某些备份工具可能具有仅恢复权限的选项,其他工具可以列出备份文件及其权限,您可以使用它来修复系统。)

如果您没有备份,则需要手动修复所有问题。

答案2

如果您的发行版基于 RPM,您只能恢复由 rpm 包安装的文件。

恢复所有包权限:

rpm --setperms -a

要恢复所有包所有者(用户/组):

rpm --setugids -a

如果 -a 没有运行,您可以执行 bash 循环:

对于权限:

for x in $(rpm -qa); do rpm --setperms $x; done

对于业主:

for x in $(rpm -qa); do rpm --setugids $x; done

摘自:http://www.sysadmit.com/2016/10/linux-restauar-permisos-de-un-paquete.html

答案3

仅当您知道目录下每个文件和目录的用户和组所有权时/

即使如此,您也已经破坏了需要由 root 拥有的关键系统文件的所有权,包括该sudo命令。您可能需要将硬盘驱动器安装到另一个系统上,并且要注意另一个系统可能不会具有与您刚刚破坏的系统相同的 UID 和 GID 映射。

如果可以的话,复制整个硬盘驱动器,然后重新安装操作系统。完成此操作后,您可以尝试将文件复制回新擦除的系统并恢复其所有权。您可能可以假设(尽管不是 100% 可靠)下面的所有内容/home/foo都归 user 所有foo,并且下面的每个邮件假脱机文件/var/mail都归相应的用户所有(如果系统上有电子邮件)。您可能无需恢复大多数不在 下的文件即可逃脱/home,具体取决于您对系统所做的操作。

然后开始养成仔细检查您运行的任何命令的习惯sudo 你打了Enter

答案4

如果发行版是基于 rpm 的:

rpm -a --setperms

相关内容