我想将文件移动到 /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