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
我终于找到了解决办法 问题解释 当我递归地更改根文件夹
/
的权限时,我还更改了/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