Ubuntu sudo 不起作用

Ubuntu sudo 不起作用

我想将文件移动到 /usr/python2.7/ 但是无法这样做,因此我将 /usr 的权限更改为 myuser:

sudo chown -R ***** /usr

它确实起作用了,但是当 sudo 停止工作时,我意识到这是一个错误。它说:

sudo: effective uid is not 0, is sudo installed setuid root?

我见过这个帖子其中可接受的解决方案是使用policykit:

pkexec chown root:root /usr/bin/sudo
pkexec chmod 4755 /usr/bin/sudo

然而,就连 policykit 也表示:

pkexec must be setuid root

请帮忙,我已经吸取了教训,以后再也不会更改 /usr 的权限了。这次请帮帮我!

答案1

如果您的 root 帐户没有被禁用,您应该能够成为 root:

su -

此后您应该能够再次更改 /usr 的所有权。

如果这不起作用(因为您没有启用 root 帐户 + 密码),您可以从 live cd 启动(您可能仍保留的 ubuntu 安装中的 USB 记忆棒或 CD 也可以)。

启动它,并挂载当前硬盘(可能位于 /media/raring-root-disk)。然后更改已挂载分区的所有权:

chown -R root:root /media/raring-root-disk/usr
chmod -R a+rX /media/raring-root-disk/usr

笔记:我没有测试过,所以 Live-CD 方法(虽然我偏爱这种方法)可能不起作用。但是,我看不出这会对你的情况造成什么损害。请确保你有备份,因为如果你发现你将重新安装这一切,你无论如何都可能需要它们……

答案2

使用 Ubuntu LiveCD,您可以重置权限。您需要做的是启动 CD 并打开终端。

在打开的终端中,你需要找到你的分区所在的驱动器,你可以使用 来执行此操作sudo fdisk -lu。输出将显示类似以下内容:

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000be1b6

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   943300607   471649280   83  Linux
/dev/sda2       943302654   976771071    16734209    5  Extended
/dev/sda5       943302656   976771071    16734208   82  Linux swap / Solaris

我的根分区是 sda1,如果你的根分区上只有一个驱动器,我猜你的根分区也是类似的。但如果你不确定,你正在寻找系统列设置为“Linux”的设备。

一旦您知道您的 Ubuntu 安装到的分区,您需要挂载它,将以下内容的 /dev/sda1 替换为您的设备:

sudo mkdir /mnt/recover
sudo mount /dev/sda1 /mnt/recover
sudo chmod -R root:root /mnt/recover/usr
sudo chmod -R a+rX /mnt/recover/usr
sudo umount /mnt/recover

相关内容