首先声明,这个命令一定一定要慎用,我因为手贱,折腾了好几天,问了好多人都说重装吧,最后终于自己又折腾的能用了。
我先说一下我这里的状况:
1、su命令进不去root用户;
2、sudo命令也不能使用;
3、进不去图形界面;
4、系统的服务大部分都停止了。
基本上整个系统到了崩溃的边缘了,我就记录一下我的做法,不一定适合别人的:
1、在虚拟机上新建一个相同系统的虚拟机,可以安装apache服务来与目标虚拟机通信:
apt-get install apache2
。
2、在新的虚拟机root用户下执行:
getfacl -R / >temp.bak
,然后把temp.bak拷贝到、var/www/html目录下(这个目录是apache服务器目录)。
3、在目标虚拟机中获取temp.bak:
wget http://192.168.137.4/temp.bak
(我的新虚拟机的局域网ip为192.168.137.4)。
4、进入recovery模式,我的是ubuntu系统,进入方式的重启,启动的时候按住shift不放,会进入GRUB,然后选择第二个,就进入到了recovery模式,继续还会有选择,可以看到有root的选项,选择root进入。如果之前没有配置root密码的话,基本上就进不去了……
5
、
进入到root以后,进入到temp.bak的目录下,执行:
setfacl –restore=temp.bak
,之后就是慢慢等待,到了最后在reboot一下,重启以后发现可以正常使用了,后面有
什么错误的话,再手动修改一下权限,基本上就好了。
还有就是系统在这个时候会记录日志,然后错误日志能把硬盘塞满,就在/var/log/cups/error_log,如果提示硬盘不够的话,可以清空这个日志,
echo “” >
/var/log/cups/error_log
,不然都没地方放temp.bak了。
最后还是想说千万别用chmod -R 777 /,使用chmod的时候一定要确认好了,很容易把chmod -R 777 ./打成chmod -R 777 /的……