在麒麟操作系统中,误操作执行:chmod -R 777 /后,整个根目录权限都变成了777,先找一台相同版本的系统,越干净越好,把该系统的权限导出。
1.在好的机器上执行:
#cd / 到根目录
# sudo vim linux.txt 按:wq保存退出,新建一个txt文件
图 1 新建txt文件
2.#sudo getfacl -R / >linux.txt 把该系统的权限导出到linux.txt文件中,该过程时间较久,等待执行完成:
图 2 导出权限文件
#vim linux.txt
打开该文件,可以看到该文件记录了根目录下所有文件和文件夹的属组以及权限:
图 3 权限文件内容
3.把该文件拷贝到需要修复的系统根目录下,查看根目录权限
#ll /
图 4 桌面坏的根目录权限
图 5 服务器坏的根目录权限
4.桌面系统假如修改权限后未重启, 可以直接在根目录下进行权限恢复
#cd /
#setfacl --restore=linux.txt
像下图底部的“没有那个文件或目录”提示可以忽略,等待恢复结束;
图 6 权限恢复
恢复结束后,查看根目录的权限,如下图:
图 7 恢复好的根目录权限
- 假如修改过权限后重启了,桌面系统就会出现sudo命令无法使用,这个时候需要进到recovery mode进行权限修复。而服务器系统由于是设置了root登录图形化,所以sudo命令不可用对服务器系统无影响,服务器系统恢复看下“6.”桌面系统重启系统,在grub界面选择高级选项(如图7),二级菜单选第二项recovery mode(如图8),等待加载完成。
图 8 grub界面
图 9 grub二级菜单
加载完成后到图9界面,按下enter键,一定不要按ctrl+d,按ctrl+d的话会直接引导进系统。在该界面执行命令:
#cd /
#setfacl --restore=linux.txt
图 10 recovery mode
图 11 权限恢复
等待恢复完成后,查看根目录的权限:
#ll /
图 12 根目录权限
- 服务器权限恢复:重启对服务器root登录图形化无影响,所以服务器系统恢复不用到救援模式,直接可以进系统恢复
#cd /
#setfacl --restore=linux.txt
图 13 权限恢复
还原过程出现的“没有那个文件或目录”相关提示可以忽略
图 14 还原过程提示
还原过程较长等待还原结束后,查看根目录权限:
#ll /
图 15 根目录权限
这样就还原好了,如果存在还原出现问题情况可以重复还原一次。这个时候按下ctrl+d引导进入系统,该还原过程主要使用了getfacl命令和setfacl命令,关于这两个命令的其他使用方法,可以通过以下命令查看:
#getfacl --help
#setfacl --help
图 16 getfacl命令帮助信息
图 17 setfacl命令帮助信息