chown -R root.root /

Emi*_*mil 3 root chown ubuntu

所以我正在工作,有一个目录我定期在根终端中更改为我的用户,以便我可以在文本编辑器中打开文件,但我不小心按了 / 而不是 . 这是我发出的命令:

chown -R emil.emil /
Run Code Online (Sandbox Code Playgroud)

然后立即惊慌失措 ^C 并输入另一个命令,因为我认为我可以随时更改我需要访问的文件:

chown -R root.root /
Run Code Online (Sandbox Code Playgroud)

所以现在我不能做suemil,甚至尝试解决这个问题,因为我得到许可被拒绝的错误。我在 Ubuntu 上,有人可以告诉我是否有办法解决这个问题,而无需完全重新安装整个东西。

提示

如果您尝试获得 root 访问权限,并且在使用sutry 这个命令时遇到此权限被拒绝错误:

gksu gnome-terminal
Run Code Online (Sandbox Code Playgroud)

它会提示您输入 root 密码并出于某种原因打开一个新的 root 终端,这会起作用,并在su没有时为我提供 root 访问权限。

Pau*_*aul 5

来自 / 的文件系统具有多种所有权权限,以实现不同的目的。

您尝试的修复使 root 成为所有内容的所有者,因此对于许多操作(包括访问 /home/emil 下的文件),root 是唯一可以工作的用户。

所以你的选择是:

  1. 从备份中恢复
  2. 重新安装
  3. 启动到单用户模式并手动将正确的所有者应用于每个文件

我假设 1. 不在讨论范围内,而 2. 不是首选选项。

在启动 Ubuntu 时的 Grub 菜单中,您应该在启动时有一个恢复选项。如果您没有看到 grub 菜单(在 bios 之后出现在其他任何内容之前),请按住左侧的键Shift,它就会出现。选择此选项将引导至单用户模式,您以 root 身份登录。

从那里你可以开始改变所有权。第一件事是

 chown -R emil /home/emil
Run Code Online (Sandbox Code Playgroud)

这将使您成为自己文件的所有者。对于其余部分,您可能希望在另一台机器上进行安装以比较文件所有权,或者启动您在 /etc/init.d 中使用的每个服务并观察失败的原因(请注意,一个服务可能会失败只是因为它是无法将其日志写入 /var/log,因此甚至无法提供错误报告)。

这将是一个非常耗时的过程,但确实可以避免重新安装。请注意,您对 Ubuntu 和应用程序设置所做的任何个人配置都将存储在 /home/emil heirachy 中,因此将这些文件复制到其他地方,重新安装操作系统和应用程序,然后将它们复制回去是一个更快的选择。