我最近做了一件非常非常愚蠢的事情。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
文件夹中查找一些提示。