解决某研发手残导致的系统宕机问题的处理过程


背景

2022.8.8 公司一台服务器出现了宕机的现象:
所有的人都无法远程, 都提示密码错误.
但是网络还是通的. 2022.8.12 出差前一天去了一趟机房现场
发现使用键鼠登录也提示密码错误
认为很诡异, 一度跟维护同事产生冲突, 认为他们修改密码未告知. 使用rd.break的方式强改密码依旧无法登录.
最终使用一个非root用户执行登录发现可以, 但是想su 到root时提示错误
继而发现 根 目录都被赋予了 777 权限, 导致系统自保护无法登录.

解决过程-密码问题

rd.break的处理:
最开始是使用rd.break的方式去修改密码密码. 处理方式比较简单. 开机进入linux系统前的选择操作系统的界面.
点击e 进行编辑 在linux16开头的一行的末尾输入 rd.break. 并且使用ctrl+x进行启动.
进入系统后输入 mount -o remount,rw /sysroot/
然后执行
chroot /sysroot/
执行命令就可以修改密码
password root 如果要是开启了selinux 还需要执行如下命令
touch /.autorelabel

解决过程--无法登录的问题

上一步仅是记录. 其实改了密码还是不可以登录.
发现文件权限有问题后, 想到一个比较简单的解决办法. 跟改密码的方法一样.
只不过在passwd root 这一步修改为
cd /etc
chmod 644 passwd group shadow
chmod 400 gshadow
cd ssh
chmod 600 moduli ssh_host_dsa_key ssh_host_key ssh_host_rsa_key
chmod 644 ssh_config ssh_host_dsa_key.pub ssh_host_key.pub ssh_host_rsa_key.pub
chmod 640 sshd_config
chmod 700 /var/empty/sshd 注意不同目录需要的权限不一样, 比如 密码等信息 可能必须用户有读权限, 但是非属主必须没有写权限

解决过程--解决文件权限问题

经过如上操作,重启后用户可以登录了. 不再提示密码错误
但是因为仅仅修改了几个文件权限, 比如像是su sudo等命令权限其实还是无法使用的. 这里想到很早之前信息王萌老师曾经在我不小心干翻 一个oracle RAC节点时提供的setfacl的解决思路.
当时为2016年一次POC测试. 王老师搭建了一个RAC环境 然后我很荣幸的 chmod 777 / software -R 了下.
直接宕机.
具体思路为:
找一台比较干净的机器, 需要注意尽量文件比较少,进程也比较少的机器,不然acl的列表可能会非常庞大.
mkdir /acl
getfacl / -R > /acl/dm.acl
这个命令可以递归的将当前系统的文件目录权限全部获取到.
然后将文件复制到 被开发搞崩的机器上面
setfacl --restore=/acl/dm.acl 就可以恢复.

结论

修改好后重启一下服务器.
验证可以登录
用命令打开达梦数据库 cd /opt/dmdbms/bin && nohup ./dmserver /opt/dmdbms/data/DAMENG/dm.ini & 发现达梦数据库也正常了.
问题解决.

根目录被赋予777 -R权限后的处理过程的更多相关文章

  1. linux CentOS 权限问题修复(chmod 777 -R 或者chmod 755 -R问题修复)

    我个人曾经有一次经历: 就是在修改文件夹权限的时候,本来该执行: #chmod 777 -R ./ 结果我漏掉了那个".";执行的命令是chmod 777 -R /. 这个命令一定 ...

  2. ubuntu 下修改文件访问权限chmod 777 -R *血的教训!没事别乱开权限!用谁开谁的就行。。。最后不要用这个命令,文件操作全部改用终端

    本文转自: 个人建议 Ubuntu下修改目录权限命令如下:chmod 600 name (只有所有者有读和写的权限)chmod 644 name (所有者有读和写的权限,组用户只有读的权限)chmod ...

  3. 看完这篇 Linux 权限后,通透了!

    我们在使用 Linux 的过程中,或多或少都会遇到一些关于使用者和群组的问题,比如最常见的你想要在某个路径下执行某个指令,会经常出现这个错误提示 . permission denied 反正我大概率见 ...

  4. 取得root权限后怎么删除程序

    不知道这个算什么教程,随便一个分类吧,管理员不要扣我分啊,我也是为大家服务嘛,不对的话可以帮我处理下) 最近也学习了下,把我的X8(国行2.1版)给root了,怎么root,论坛里有很多帖子,这里就不 ...

  5. Windows安装MongoDB 4.0并赋予用户访问权限

    第一部分 Windows安装MongoDB-4.0 第一步:下载MongoDB:https://www.mongodb.com/download-center?jmp=nav#community 我目 ...

  6. Docker 记一次容器内部修改宿主机挂载目录用户权限后宿主机目录变化

    一.需求: 因公司需求,需制作mysql5.7.22 docker基础镜像,每个项目以此镜像启动一个数据库容器,并且每个项目挂载一个宿主机目录到镜像中数据存储下面用于数据持久化保存以便后期迁移至阿里云 ...

  7. linux利用用户组给用户赋予不同的权限

    在Linux中wheel组就类似于一个管理员的组.通常在LUNIX下,即使我们有系统管理员root的权限,也不推荐用root用户登录.一般情况下用普通用户登录就可以了,在需要root权限执行一些操作时 ...

  8. ESXI | ESXI6.7如何在网页端添加用户并且赋予不同的权限

    一.首先添加一个用户 管理---用户---安全和用户 添加的新用户会显示在下面 二.给添加上的用户赋予对应权限(我这里演示赋予的是只读权限) 主机---操作---权限 三.测试登录 当用只赋予了只读权 ...

  9. jenkins 设置权限后管理员登陆提示:Access Denied admin没有Overall/Read权限

    jenkins 设置权限后,管理员登陆提示:Access Denied  admin没有Overall/Read权限 处理办法: window下编辑 xml 配置文件: %userprofile%\. ...

  10. 升级R版本后,更新Package

    升级R版本后,若重新安装所有的package将非常麻烦,可以尝试运行一下程序: 1)在旧版本中的R中运行 #--run in the old version of R setwd("C:/T ...

随机推荐

  1. 教你如何在Spark Scala/Java应用中调用Python脚本

    摘要:本文将介绍如何在 Spark scala 程序中调用 Python 脚本,Spark java程序调用的过程也大体相同. 本文分享自华为云社区<[Spark]如何在Spark Scala/ ...

  2. 5步带你掌握工作流Activiti框架的使用

    摘要:本文通过一个工作流Activiti框架的具体使用示例,具体详尽的介绍了工作流Activiti框架的使用方式. 本文分享自华为云社区<一个使用示例,五个操作步骤!从此轻松掌握项目中工作流的开 ...

  3. WebKit三件套(1):WebKit之WebCore篇

    导语: Chrome浏览器的代码量其实是非常庞大的,要想对其有深入的理解,仅仅编译编译调试调试,是很难深入下去的.让我们还是从其主要部分如多进程管理通信.WebKit.V8.Skia.WinHttp. ...

  4. CentOS7安装maven,mvn clean -DskipTests package

    1.JAVA_HOME 首先确保正确安装并配置了JAVA_HOME 我这里安装了jdk1.8 2.下载maven 3.6.3 wget https://mirrors.tuna.tsinghua.ed ...

  5. 采购订单创建、修改、审批增强ME21N/ME22N/ME28/ME29N

    一.采购订单创建修改增强 BADI:ME_PROCESS_PO_CUST 通过POST方法中的参数im_header,获取对应的数据 订单头 "----------------------- ...

  6. 共享内存原理与VCS监控采集实战

    作者:cluo 一.前言 共享内存广泛用于Redis,Kafka,RabbitMQ 等高性能组件中,本文主要提供一个共享内存在广告埋点数据采集的实战场景. 二.共享内存原理 1.原理 在Linux中, ...

  7. 工作中使用Redis的10种场景

    前言 Redis作为一种优秀的基于key/value的缓存,有非常不错的性能和稳定性,无论是在工作中,还是面试中,都经常会出现. 今天这篇文章就跟大家一起聊聊,我在实际工作中使用Redis的10种场景 ...

  8. Centos7 kubeadm安装k8s

    安装环境准备 关闭防火墙 systemctl stop firewalld systemctl disable firewalld 关闭selinux sed -i 's/enforcing/disa ...

  9. qiankun 微前端实例化使用

    一.qiankun使用场景 1. 简介:qiankun是在single-spa的基础上实现的,可以保证各个项目独立使用,也可以集成使用.各系统之间不受技术栈的限制,集成使用也能保证各样式和全局变量的隔 ...

  10. @Conditional注解使用及@ConditionalOnXXX各注解的作用

    本文为博主原创,转载请注明 出处: 一.@Conditional注解作用: 必须是 @Conditional 注解指定的条件成立,才会在容器中添加组件,配置类里面的所有配置才会生效 二.@Condit ...