最近,由于主引导记录中的一些杂乱无章的东西,我不得不重新安装我的 Ubuntu。在此之前,我将所有文件夹(不包括 root、bin、sbin、tmp、media、mnt)备份到 NTFS 分区。安装 Ubuntu 后,我使用 nautilus(由 sudo nautilus 运行)复制了所有文件夹。之后,我重新启动计算机。繁荣,现在我不能再运行 sudo 了,我的网络服务也不能运行。当我从终端运行 sudo 时,出现“必须是 setuid root”错误。在 ubuntu 中,默认情况下禁用了 root 帐户,我不知道为什么所有这些文件不再属于我的帐户。我该如何恢复?
sudo 命令必须在其可执行文件上设置 setuid 权限位。但在 Ubuntu 中,您目前无法成为 root。我认为您可以从紧急磁盘启动并使用 chmod 在 sudo 上设置此位。
正如 Fractalizer 所说,这是 sudo 上的 setuid 位的问题。可以在此处找到有关如何修复它的详细说明:http ://ubuntuforums.org/showthread.php?t=219767
除了这个程序之外,很有可能还会有其他问题。因此,一旦您使用 sudo 解决了特定问题,您可能会发现其他问题。不幸的是,cp'ing 到 NFS 共享并不会保留完整运行系统所需的所有权限。特别是在像 /usr/bin 这样的地方。
您的文件不再属于您的帐户,因为您以 root 身份复制了它们。这样root就成为了所有者。
要返回 sudo,请从救援环境挂载您的根分区并编辑
etc/group
. 将您的用户帐户添加到管理员组,您应该再次拥有 sudo 访问权限。之后,您可以更改复制文件的所有权。你有另一个 ubuntu 安装在哪里寻找正确的所有权?
正如其他人已经说过的,这是一个权限问题。
首先,你复制到了一个 NTFS 分区,它有不同的权限,所以在这个过程中你很可能会丢失一些信息,虽然我从未尝试过。
其次,您可能应该复制文件
cp -p
以保留模式和所有权。最好的选择是使用
tar
(或等效的),我猜你错误地输入了命令及其选项。一种简单的备份方法是此外,正如其他人所提到的,
rsync
这是一个有效的选择。