Ubuntu 如何修复chmod-r 777/之后的权限?

Ubuntu 如何修复chmod-r 777/之后的权限?,ubuntu,permissions,sudo,chmod,Ubuntu,Permissions,Sudo,Chmod,我在脚本中犯了一个非常恼人的错误。。。应递归更改文件夹权限的行: chmod -R 777 $folder/ 问题是变量没有设置,所以它运行: chmod -R 777 / 是的,笨蛋。问题是现在我无法再使用sudo,我收到以下消息: sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set 有没有办法恢复权限 如果没有,有没有办法备份我的Ubuntu 14.04(在VirtualBox上运行) 如果没有,

我在脚本中犯了一个非常恼人的错误。。。应递归更改文件夹权限的行:

chmod -R 777 $folder/
问题是变量没有设置,所以它运行:

chmod -R 777 /
是的,笨蛋。问题是现在我无法再使用
sudo
,我收到以下消息:

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
  • 有没有办法恢复权限
  • 如果没有,有没有办法备份我的Ubuntu 14.04(在VirtualBox上运行)
  • 如果没有,如何保存重要数据

  • 我终于找到了解决办法

    问题解释

    当我递归地更改根文件夹
    /
    的权限时,我还更改了
    /usr/bin/sudo
    的权限。要查看其权限,我键入:

    ls -la /usr/bin/sudo
    
    它给了我:

    -rwxrwxrwx 1 root root 127668 2016-05-11 12:01 /usr/bin/sudo
    
    而不是:

    -rwsr-xr-x 1 root root 127668 2016-05-11 12:01 /usr/bin/sudo
    
    在这里,-rwsr-xr-x的s非常重要,因为它向用户提供临时权限,以使用文件所有者(即本例中的root)的权限而不是运行sudo的用户的权限来运行sudo

    有关更多信息,请参阅本文:

    解决方案是更改
    /usr/bin/sudo
    上的权限:

    chmod 4755 /usr/bin/sudo
    
    但我需要是root才能更改权限。。。幸运的是,我在虚拟机上运行Ubuntu

    解决方案

    一个解决方案是创建一个新的虚拟机。完成后,在我的新虚拟机上用VirtualBox挂载我的坏ubuntu.vdi设置-->存储-->添加硬盘驱动器。确保第一个硬盘驱动器是您的新虚拟机,以便它在新虚拟机上启动

    完成后,您可以更改安装在硬盘上的sudo权限(已损坏的ubuntu):


    你现在可以用一个工作的sudo运行你的固定虚拟机了…

    我也有同样的问题,我就是这样解决的。基本上,链接的内容是Ubuntu 16.04的默认文件权限,所以我刚刚创建了一个bash脚本,复制了所有内容,编辑了文件,比如replace user:user到你的特定用户,以及/home/user到你的特定用户指定的用户名

    干杯

    您无需重新安装。
    sudo chmod 4755 /mnt/XXXXX/usr/bin/sudo