意外更改了 /bin 和其他目录的所有者

意外更改了 /bin 和其他目录的所有者

我最近做了一件非常非常愚蠢的事情。chown adam ./*我本该输入:,却输入了:(chown adam /*我忘记了非常重要的点)。现在我有一些文件的所有者adam不是……嗯,我真的不知道是谁。我甚至无法调用su并以 root 身份登录,因为我得到:su: cannot set groups: Operation not permitted。我只能运行我的 Arch Linux cd,在 EFI 模式下运行它,以 root 身份登录并调用arch-chroot /mnt,其中/mnt挂载了我的主 Linux 分区。情况很糟糕,但还不算太糟。有什么办法可以恢复我的系统吗?

答案1

我会从 chroot 内部开始sudo chown -R root /bin /sbin /lib /usr /sys /boot /etc /dev- 这应该会给你一个可启动的系统,但我不是 100% 确定。可能需要等待某人确认这不会使情况变得更糟。

请注意,如果您只是对文件进行 chown 操作,那么您的处境会比对系统进行 chmod 或 chgrp 操作的人好得多。单用户系统(即仅由您使用)上的大多数文件要么归您所有(位于 /home/username 中),要么归 root 所有。可能有一些奇怪的文件,/var并且肯定有一些文件位于 和 中/run/tmp它们归创建它们的服务所有。尝试sudo chown root /var /run /tmp(注意缺少-R)查找这些目录。

然后,您可能想要删除/run/tmp内容(sudo rm -rf /run/* /tmp/*- 请小心确保输入正确),因为它们是暂时的,会在系统重新启动时由应用程序重建,这比尝试追踪所有者并修复它要容易得多。

/var将会变得一团糟。许多守护进程都希望能够在那里写入(mysql、apache 等),并且文件夹嵌套在其中。重新拥有顶层内容(sudo chown root /var/*)是安全的,但文件夹中的内容需要小心恢复。您可以在 live-cd 的/var文件夹中查找一些提示。

相关内容