Centos7 误执行chmod 777

简介: Centos7 误执行chmod 777

1. 背景描述

误操作执行了chmod -R 777 /,导致普通用户无法执行sudoroot用户又无法正常登陆成功。

2. 排查发现

  • 普通用户尚未退出,但是已经无法修复权限,因为无法执行sudo ,报错:sudo: /bin/sudo must be owned by uid 0 and have the setuid bit set
  • SSH无法启动,因为文件权限too open 。

3. 解决方法

使用修复盘引导启动或者采用单用户模式,两者选其一

3.1.1 登录单用户模式

  • 重启服务器,在选择内核界面使用上下箭头移动
  • 选择内核并按e进入编辑界面
  • 找到 linux16 vmlinuz… 那行, 按 end 移动到最后, 空一格加入 init=/bin/bash,删除rhgb quiet`
  • Ctrl + x 开机,即可进入单用户模式。
  • 将根目录挂载为读写模式:mount -o remount,rw /

3.1.2 修复盘挂盘修复

mount /dev/vda1后修改如下几个文件权限

  •  chmod 600 /mnt/etc/securetty
  •  chmod 600 /mnt/etc/ssh/ssh_host*
  •   chmod -R 600 /mnt/var/empty/sshd

重启后可以解决SSH无法启动和root 用户登录问题

3.2 恢复默认权限设置

方式一: 利用rpm包的默认权限设置来恢复

推荐

  1. for i in `rpm -qa`; do rpm --setperms $i; done
  2. for i in `rpm -qa`; do rpm --setugids $i; done

方式二:利用acl权限恢复

通过系统自带的getfacl命令来拷贝和还原系统权限,修复的方法如下:

  1. # 通过一台权限正常的Linux(最好内核版本和故障服务器相同)来获取系统权限列表
  2. getfacl -R / > systemp.bak
  3. 将systemp.bak拷贝至目标机
  4. # 异常服务器中执行恢复权限命令
  5. setfacl --restore=systemp.bak
  6. # 重启系统
  7. reboot
目录
打赏
0
0
0
0
320
分享
相关文章
CentOS 7 执行 yum 命令失败问题的排查方法
本文主要为大家讲解CentOS 7系统中执行yum命令失败等常见问题的排查方法。
4727 0
CentOS 7 执行 yum 命令失败问题的排查方法
Ubuntu 普通用户修改sudoers导致无法使用sudo的解决办法
Ubuntu 普通用户修改sudoers导致无法使用sudo的解决办法
269 2
Linux Ubuntu crontab 添加错误 提示:no crontab for root - using an empty one 888
Linux Ubuntu crontab 添加错误 提示:no crontab for root - using an empty one 888
197 3
Centos显示-bash-4.1$问题的修复及原因探究
Centos显示-bash-4.1$问题的修复及原因探究
194 0
CentOS:bash: g++: 未找到命令...
CentOS:bash: g++: 未找到命令...
221 0
centos7下bash命令自动纠正错误
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79475837 vi ~/.
1020 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等