我不小心chmod -777 /
现在无法访问任何东西,当我重新启动时,会显示一个对话框,提示“您的图形设置为低”,单击确定后,会出现一个选项“退出到登录屏幕”,当我选择这个选项时,会出现一个空白屏幕,顶部有“-”。
有什么方法可以撤销该过程或者至少恢复数据吗?
PS:我正在使用 Windows Vista 和 Ubuntu 13.04(双启动)。
答案1
请注意,这chmod -777
就像chmod 000
。因此,OP 可能只是更改了/
文件夹的权限,而不是递归更改,他或她只需使用
chmod 755 /
从恢复启动。例如,从安装介质启动,选择尝试 Ubuntu,打开终端并进入超级用户(进行以下检查三次,并且只有在理解你在做什么之后)
sudo -i
mount /dev/yourrootpartitonhere /mnt
cd /mnt
chmod 755 .
cd ..
umount /mnt
并正常重启,一切就正常了。
如果您确实使用了 -R,请备份您的数据(请参阅此处的其他答案),然后重新安装。
答案2
谢谢您的回答。
我刚刚安装了 Ubuntu 14.04,但我能够使用 Live CD 备份我的数据。
我从 Live CD 启动并执行了 chmod 777 / 'pathOfTheDirectory'
不要管那些你不太了解的事情——这是经验教训。
答案3
如果您运行该命令chmod -777 /foo
,它可能具有一些奇怪的功能。最有可能的是,它将否定您在八进制 777 的否定中传递的位(二进制为 111111111,这很重要),这实际上是无法表示的,因为chmod
它使用 9 位设置文件权限(每个权限 1 位,用于读取、写入、执行 * 所有者、组、用户),这是一个无符号数(不能为负数)。
假设您可以表示有符号数(负值和正值)。如果您找到 777 的 2 的补码(0b111111111),那么您就可以确定命令的确切行为(以及您要传递给命令的数字):
111111111
-000000000
----------
111111111
+000000001
----------
1000000000 #this number will cause an overflow because it is 512
#since our range is only -256 -> 255
这一切意味着什么?你告诉内核“嘿,将此文件夹的权限设置为 1000000000”。内核回应“Ok”,并按照你的要求执行。现在你的文件系统权限就是这样。--------- root root /
这一切都假设我(和你的内核/CPU)正确地进行了计算。
恢复
根文件系统的/
默认权限通常为 755。解决此问题的最简单方法是登录并使用Ctrl+切换到 tty F1(这将带您进入 tty1,tty2-6 也处于打开状态,tty7 是当前 X 会话的位置)。您可以以 root 身份登录(或以普通用户身份登录,但请sudo
在下面的每个命令前使用)并运行以下命令:
chmod 755 /
那应该解决您遇到的问题。