解决方案-问题001:物理机、虚机等等Linux操作系统/usr/bin目录权限误操作,导致无法切换root

  • 导语:平常运维人员会误操作一些目录权限,导致一些问题,那么如何恢复呢?
  1. 问题:物理机、虚机等等Linux操作系统/usr/bin目录权限误操作,导致无法切换root?

实验环境:

ip地址 是否目录正常 内核版本 备注
192.168.140.136 目录正常机器 3.10.0-1160.el7.x86_64  
192.168.140.138 目录损坏机器 3.10.0-1160.el7.x86_64  

解决方案-问题001:物理机、虚机等等Linux操作系统/usr/bin目录权限误操作,导致无法切换root误操作

解决方案-问题001:物理机、虚机等等Linux操作系统/usr/bin目录权限误操作,导致无法切换root问题现象

解决方案:可以通过系统自带的getfacl命令来拷贝和还原系统权限,若是其他系统目录被误操作,同样可行。修复的方法如下

(1)尽量找一台相邻且相同内核正常的物理机、虚机,登陆上去,执行自带的getfacl命令拷贝该目录的系统权限

[root@master ~]#getfacl -Rp /usr/bin > systemp_list.bak        #将/usr/bin目录下的所有文件的权限都备份保存在systemp_list.bak

补充说明:
setfacl命令 是用来在命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名。
选项
-b,--remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。
-k,--remove-default:删除缺省的acl规则。如果没有缺省规则,将不提示。
-n,--no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定。
--mask:重新计算有效权限,即使ACL mask被明确指定。
-d,--default:设定默认的acl规则。
--restore=file:从文件恢复备份的acl规则(这些文件可由getfacl -R产生)。通过这种机制可以恢复整个目录树的acl规则。此参数不能和除--test以外的任何参数一同执行。
--test:测试模式,不会改变任何文件的acl规则,操作后的acl规格将被列出。
-R,--recursive:递归的对所有文件及目录进行操作。
-L,--logical:跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录。
-P,--physical:跳过所有符号链接,包括符号链接文件。
-p, --absolute-names 不去除路径前的 '/' 符号
--version:输出setfacl的版本号并退出。
--help:输出帮助信息。
--:标识命令行参数结束,其后的所有参数都将被认为是文件名
-:如果文件名是-,则setfacl将从标准输入读取文件名。

(2)将生成的systemp_list.bak拷贝到目录误操作损坏的机器上

[root@master ~]# scp systemp_list.bak xxx@192.168.140.138:/home/xxx/

解决方案-问题001:物理机、虚机等等Linux操作系统/usr/bin目录权限误操作,导致无法切换root

(3)在异常服务器进入单用户中执行命令setfacl --restore=systemp.bak即可将现在的系统权限恢复成和正常系统一样

①重启机器在这个页面按E进入编辑

解决方案-问题001:物理机、虚机等等Linux操作系统/usr/bin目录权限误操作,导致无法切换root

②将ro 改成 rw init=/sysroot/bin/sh 按ctrl-x进入单用户 ,chroot /sysroot 挂载系统盘

解决方案-问题001:物理机、虚机等等Linux操作系统/usr/bin目录权限误操作,导致无法切换root

③切换到systemp_list.bak所在的目录然后执如下命令

setfacl --restore=systemp.bak

④执行完后使其生效touch ./autorelable 重启reboot机器即可恢复正常

解决方案-问题001:物理机、虚机等等Linux操作系统/usr/bin目录权限误操作,导致无法切换root

上一篇:获取Ajax通信对象方法


下一篇:crm——stark组件核心原理