将“usr”的权限更改为 700

将“usr”的权限更改为 700

/usr我把Ubuntu的权限改为700。

图形无法工作。在 tty 中,我无法使用 sudo 来重新更改权限。

我尝试从“高级启动选项”访问根目录并运行命令chmod 755 /usr,但它显示“只读文件”之类的内容,并且权限没有改变。

我的一个朋友也尝试过安装驱动器并更改所有者,但似乎没有任何效果。

答案1

不幸的是,您删除了组权限和所有其他权限。而且您对系统用于启动和绘制 GUI 的几乎每个程序都做了同样的操作。您还摧毁了终端仿真器。除非您有可以恢复的映像,否则我认为您将不得不重新安装操作系统。

答案2

如果你在恢复模式下启动并得到一个可以启用网络的菜单(此选项将以读写权限挂载文件系统),那么启用网络然后选择进入 root shell并跳至步骤 3-sudo在这种情况下,您可以省略命令。如果您在恢复中启动并且没有看到此选项,那么它将不起作用,因为您必须使用sudo以读写方式重新安装并且您不能使用sudo,因此在这种情况下:

如果你没有网络和 root shell 恢复选项,那么请启动实时会话(如果你没有,请让朋友为你制作一个实时 USB)并挂载你的安装:

  1. 使用 找到根分区sudo fdisk -l。如果您没有双启动并且很可能有一个 ext4 文件系统,它将是最大的分区。

  2. 挂载分区,使用根分区的实际名称而不是/dev/sdxY挂载cd点:

    sudo mount /dev/sdxY /mnt
    cd /mnt
    
  3. 检查当前权限

    ls -ld /usr
    
  4. 如果不是 root,则将所有者更改回 root:

    sudo chown root:root /usr
    

检查你的朋友是否使用过-R该命令ls -ld /usr/bin,如果它说 root 是所有者,则不要再执行任何操作并转到下一步。如果你的朋友使用过-R,那么你必须使用sudo chown -R root:root /usr在这里纠正它。root 应该是/usr 除了 /usr/bin/at这应该属于daemon所以如果你使用chown -R root:root /usr然后之后做chown daemon:daemon /usr/bin/at(我使用巧妙的 find 命令检查了这一点这个答案...如果你有/usr/sbin/uuidd,也应该是chownchown libuuid /usr/sbin/uuidd

  1. 更改权限(不使用 -R

    sudo chmod 755 /usr
    

再次,请不要使用-R旗帜

  1. A。-R假设您一开始就没有使用该标志,那么您现在已经修复了它。如果你做过使用该-R标志,那么可能会更容易安全地备份您的/home内容并重新安装,但现在修复sudo需要 setuid 位(八进制 4):

    sudo chmod 4755 /usr/bin/sudo
    
  2. 如果正在运行实时会话,cd请退出并卸载分区:

    cd /
    sudo umount /dev/sdxY
    

然后重新启动回到您的系统。现在您有了sudo,并且chmod位于/bin,因此您可以使用它sudo chmod来修复 /usr 中您需要的任何其他损坏的权限,以便您接下来要执行的操作,但请确保您确切知道自己在做什么(例如,阅读一些内容)使用时chmod(读取并避免使用-R标志 - 如果清除setuid位,sudo则会再次破坏它。

相关内容