不小心更改了 /bin 和其他目录的所有者

Yob*_*Yob 3 linux permissions system-restore chown

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

Dar*_*oid 5

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

请注意,如果您只是 chown'd 文件,那么您比那些 chmod'd 或 chgrp'd 系统的人处于一个更好的位置。单用户系统上的大多数文件(即,仅供您使用)要么归您所有(在 /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文件夹以获取一些提示。