如何在 chmod -r 777 / 之后修复权限?
How to fix permissions after chmod -r 777 /?
我在脚本中犯了一个非常烦人的错误...一行应该递归地更改文件夹的权限:
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 很重要,因为它为用户提供了临时权限 运行 sudo 具有文件所有者(即本例中的 root)的权限,而不是 运行 拥有它的用户。
查看这篇文章以获取更多信息:http://www.linuxnix.com/suid-set-suid-linuxunix/
一个解决方案是更改 /usr/bin/sudo
的权限:
chmod 4755 /usr/bin/sudo
但我需要成为 root 才能更改权限...好吧,幸运的是我在 VM 上 运行ning Ubuntu。
解决方案
一个解决方案是创建一个新的虚拟机。完成后,在我的新虚拟机上使用 VirtualBox 安装损坏的 ubuntu .vdi。 设置 --> 存储 --> 添加硬盘。确保第一个硬盘驱动器是您的新虚拟机,以便它在新虚拟机上启动。
完成后,您可以更改安装的硬盘上的 sudo 权限(您的损坏 ubuntu):
sudo chmod 4755 /mnt/XXXXX/usr/bin/sudo
您现在可以 运行 您的固定虚拟机具有正常工作的 sudo...
我遇到了同样的问题,这就是我修复它的方法here 基本上 link 中的内容是 Ubuntu 16.04 的默认文件权限,所以我刚刚创建了一个 bash 脚本复制了那里编辑文件的所有内容,例如将 user:user 替换为您的特定用户,并将 /home/user 替换为特定的用户名
干杯!
我不小心犯了同样的错误,通过这些步骤我的问题得到了解决。
我从 root 注销了,我无法 运行 使用 root 权限的命令,我正在 debian 10.
1-启动或重新启动计算机并按 ESC(在某些机器上,按住 Shift 键)以显示 Grub 启动菜单。
2-从菜单中选择“Advanced Options for...”并使用(恢复模式)启动内核条目
3-它给你一个 root shell 如果你有你的 root 密码,所以你可以 运行 这些命令
chmod -R 755 /bin /boot /dev /etc/ /home /lib /lib64
/media /mnt /opt /运行 /sbin /srv /usr /var
chmod -R 777 /initrd.img /vmlinuz
chmod -R 1777 /tmp
chmod -R 555 /sys
chmod -R 555 /proc
chmod -R 700 /root
4-如果想以root用户登录时出现错误,可以运行 chmod +s /bin/su查看结果 ls -lt /bin/su
结果应该是这样的 -rwsr-sr-x 而不是 -rwxr-sr-x
我在脚本中犯了一个非常烦人的错误...一行应该递归地更改文件夹的权限:
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 很重要,因为它为用户提供了临时权限 运行 sudo 具有文件所有者(即本例中的 root)的权限,而不是 运行 拥有它的用户。
查看这篇文章以获取更多信息:http://www.linuxnix.com/suid-set-suid-linuxunix/
一个解决方案是更改 /usr/bin/sudo
的权限:
chmod 4755 /usr/bin/sudo
但我需要成为 root 才能更改权限...好吧,幸运的是我在 VM 上 运行ning Ubuntu。
解决方案
一个解决方案是创建一个新的虚拟机。完成后,在我的新虚拟机上使用 VirtualBox 安装损坏的 ubuntu .vdi。 设置 --> 存储 --> 添加硬盘。确保第一个硬盘驱动器是您的新虚拟机,以便它在新虚拟机上启动。
完成后,您可以更改安装的硬盘上的 sudo 权限(您的损坏 ubuntu):
sudo chmod 4755 /mnt/XXXXX/usr/bin/sudo
您现在可以 运行 您的固定虚拟机具有正常工作的 sudo...
我遇到了同样的问题,这就是我修复它的方法here 基本上 link 中的内容是 Ubuntu 16.04 的默认文件权限,所以我刚刚创建了一个 bash 脚本复制了那里编辑文件的所有内容,例如将 user:user 替换为您的特定用户,并将 /home/user 替换为特定的用户名
干杯!
我不小心犯了同样的错误,通过这些步骤我的问题得到了解决。
我从 root 注销了,我无法 运行 使用 root 权限的命令,我正在 debian 10.
1-启动或重新启动计算机并按 ESC(在某些机器上,按住 Shift 键)以显示 Grub 启动菜单。
2-从菜单中选择“Advanced Options for...”并使用(恢复模式)启动内核条目
3-它给你一个 root shell 如果你有你的 root 密码,所以你可以 运行 这些命令
chmod -R 755 /bin /boot /dev /etc/ /home /lib /lib64 /media /mnt /opt /运行 /sbin /srv /usr /var
chmod -R 777 /initrd.img /vmlinuz
chmod -R 1777 /tmp
chmod -R 555 /sys
chmod -R 555 /proc
chmod -R 700 /root
4-如果想以root用户登录时出现错误,可以运行 chmod +s /bin/su查看结果 ls -lt /bin/su
结果应该是这样的 -rwsr-sr-x 而不是 -rwxr-sr-x