chmod -R 777 / 抢救,看这篇就够了

news2025/1/19 11:34:59

chmod -R 777抢救全过程记录

背景

在两台Ubuntu 20.04的服务器上错误执行了chmod -R 777 /命令,结果非常酸爽,sudo权限失效,而且ssh也没有用了。在经过了10多个小时的踩坑以后最后在不重装系统的情况下解决了问题,以下记录只记录正确的步骤,照做即可。

参考资料:
https://blog.csdn.net/chrisy521/article/details/128796439

步骤1-找到服务器物理机并物理连接,进入root模式

ssh不能用了,就必须物理连接服务器了,如果无法物理连接,本教程无法解决问题。
作为Ubuntu的机器,只需要在开机过程中不断地点按ESC即可进入GRUB界面,很可能因为按得太快错过了那个界面,直接到了GRUB的命令行,不急,可以输入normal回车并马上点按ESC,即可进入以下界面:
在这里插入图片描述
选择Advanced options for Ubuntu,然后选择第一次带recovery mode字样的进入恢复模式
在这里插入图片描述
然后只需要在后续的界面选择root回车
在这里插入图片描述
就可以在界面最下方看到root登录的命令行terminal了

步骤2-手动授权修复基本权限结构

执行以下命令:

chmod -Rf 755 /
chmod -Rf 777 /tmp
chmod -Rf 700 /root
chmod -Rf 555 /sys

# 对于需要给其他用户sudo权限的还需要执行以下命令
chown root:root /usr/bin/sudo 
chmod 4755 /usr/bin/sudo

重启服务器,这时候可以测试一下sudo权限是否正常,如果报错说什么文件夹必须智能被root writable,那就把那些文件夹的权限通过chmod 755都改过来即可。

步骤3-恢复ssh权限

ssh的正常登录要求ssh一些文件不是world writable。这时候解决方案如下:
找到你的一个ssh正常的机子,通过ls -l /etc/ssh检查正确的权限结构,为了防止你没有ssh正常的机器,我提供一下我机器的权限结构,其中那两个myold尾缀的是我之前的备份,大家可以不管:
在这里插入图片描述

也就是说你需执行以下指令:

cd /etc/ssh
chmod 644 moduli ssh_config sshd_config ssh_host_dsa_key.pub ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub ssh_host_rsa_key.pub
chmod 600 ssh_host_dsa_key ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key 

然后执行reboot命令重启,这时候应该能够ssh,也能够sudo了,服务器恢复正常使用,大功告成。

步骤4-少数情况出现网络不能正常使用了

我有一台服务器突然网络需要重新配置了,发现ping www.baidu.com都配不同。网络配置的方法很简单,按照上面的教程进入恢复模式,csdn查找你对应系统版本的网络IP, DNS的配置方法,我发现不同系统版本是不一样的,之前用Ubuntu 16.04在我Ubuntu 20.04尝试,怎么也不行。现在提供Ubuntu 20.04的配置方案如下:

修改vim /etc/netplan/01-network-manager-all.yaml文件,01-network-manager-all.yaml在不同机器上可能有不同的名字,并修改内容如下:

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eno2:
      dhcp4: no
      addresses: [192.168.1.100/24]
      optional: true
      gateway4: 192.168.1.1
      nameservers:
        addresses: [223.5.5.5,223.6.6.6]
~                                             

其中eno2是我的网卡的名字,可以通过ifconfig查看,可能是enoxxx其他编号,也可能是ensxxx,根据具体情况而定。addresses那配置的就是[IP/CIDR]CIDR为24对应的子网掩码是255.255.255.0,有的单位可能是255.255.254.0,这个CIDR就是23,具体可以去这个博客查:https://www.forease.net/docs/handbook/appendix-netmask.html。gateway4就是网关,nameservers下面的就是域名服务器,需要问网管要。

这个文件配置好以后执行以下命令

netplan apply # 应用配置
/etc/init.d/network-manager restart # 重启网络服务

大功告成!如果还不行,建议卸载重装openssh,教程可见(https://blog.csdn.net/zj850324/article/details/124977925)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1667859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ requires关键字简介

requires 是 C20 中引入的一个新关键字,用于在函数模板或类模板中声明所需的一组语义要求,它可以用来限制模板参数,类似于 typename 和 class 关键字。 requires关键字常与type_traits头文件下类型检查函数匹配使用,当requires后…

Selenium操作对象的方法汇总(如click/clear/submit/sendKeys/getText/getSize等)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

景源畅信:抖音小店的商品怎么同步到橱窗?

在数字营销的海洋中,抖音小店与橱窗的同步操作无疑是商家们关注的焦点。这不仅能增加商品的曝光度,还能提高交易的可能性。那么,如何将抖音小店的商品同步到橱窗呢? 一、核心步骤解析 要实现商品从抖音小店同步到橱窗,你需要确保…

Windows快速部署DCNv4(成功版)

文章目录 一、介绍二、编译DCNv42.1 下载源码2.2 编译DCNv4 三、报错提示3.1 Cuda is not available3.2 需要Microsoft Visual C 14.0 一、介绍 论文链接:[https://arxiv.org/pdf/2401.06197.pdf] (https://arxiv.org/pdf/2401.06197.pdf)   在这篇文章中介绍了一…

UnitTest / pytest 框架

文章目录 一、UnitTest框架1. TestCase使用2. TestSuite 和 TestRunner3. TestLoader4. Fixture装置5. UnitTest断言1. 登录案例 6. 参数化1. parameterized插件 7. unitTest 跳过 二、pytest 框架1. 运行方式3.读取配置文件(常用方式) 2. pytest执行用例的顺序1. 分组执行(冒烟…

基于springboot+vue+Mysql的校园闲置物品租售系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

Multisim 14单管放大电路静态分析

multisim multisim,即电子电路仿真设计软件。Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式&#xff0…

【优选算法】——双指针——15. 三数之和

目录 1.题目 2.解法(排序双指针): 算法思路: 3.代码实现 1.题目 15. 三数之和 提示 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足…

K-RTD01和利时FW248中控卡件

K-RTD01和利时FW248中控卡件。 系统概述 的全称为保护工程师站及录波分析后台”是利用现代计算机和网络技术,K-RTD01和利时FW248中控卡件。实时收集变电站运行和故障信息,并通过对变电站的故障信息进行综合分析,K-RTD01和利时FW248中控卡件。…

【getopt函数用法】

这里写目录标题 一、概述二、选项字符串规则:三、getopt 返回值四、会用到的全局变量:三、示例代码四、上机实验 一、概述 int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; //这个最常用,保存一个…

eNSP-BGP综合实验

目录 实验要求 子网划分 配置IP地址 AS2内使用ospf协议配置全网通 配置 查看建邻情况 配置BGP协议 配置 测试 配置BGP反射器 宣告网段达成全网通 宣告 测试 构建VPN隧道 配置 测试 实验要求 1、AS 1中存在两个环回,一个地址为192.168.1.0/24&#xf…

MF自定义控件方法

在MFC中,您可以通过自定义控件来实现特定的用户界面元素或功能,以满足您的应用程序需求。自定义控件通常是从CWnd类派生的子类,您可以在其中重写绘制、处理事件等方法,以实现您想要的功能和外观。以下是一般步骤: 创建…

【荣耀笔试题汇总】2024-05-11-荣耀春招笔试题-三语言题解(CPP/Python/Java)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新小米近期的春秋招笔试题汇总~ 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢&#x1f49…

repo跟git的关系

关于repo 大都讲的太复杂了,大多是从定义角度跟命令角度去讲解,其实从现实项目使用角度而言repo很好理解. 我们都知道git是用来管理项目的,多人开发过程中git功能很好用.现在我们知道一个项目会用一个git仓库去管理,项目的开发过程中会使用git创建分支之类的来更好的维护项目代…

正方形中的最多点数

代码实现&#xff1a; 方法一&#xff1a;遍历——超时 int maxPointsInsideSquare(int **points, int pointsSize, int *pointsColSize, char *s) {int a 0;int flag 1;int num, pre_num 0;while (flag) {num pre_num;pre_num 0;int hash[26] {0};for (int i 0; i <…

fastjson2使用

说明&#xff1a;fastjson2是一个性能极致并且简单易用的Java JSON库&#xff08;官方语&#xff09;&#xff0c;本文介绍在Spring Boot项目中如何使用fastjson2。 创建项目 首先&#xff0c;创建一个Maven项目&#xff0c;引入fastjson2依赖&#xff0c;如下&#xff1a; …

Windows使用cowaxess(goaccess)分析Nginx日志

原文网址&#xff1a;Windows使用cowaxess(goaccess)分析Nginx日志_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Windows安装cowaxess来分析Nginx的access.log日志的方法。 cowaxess是goaccess的Windows版本&#xff0c;cowaxess底层会调用goaccess。 GoAccess 是一个专门用来…

使用迭代器进行遍历时不能进行元素的任何修改

记录一下 使用迭代器进行遍历时不能进行元素的任何修改 ArrayList<String> list new ArrayList<>();list.add("一");list.add("二");list.add("光");list.add("华"); // 遍历器Iterator<String> iterator …

如何使用活字格批量导入照片到数据表

活字格是一款功能强大的电子表格软件&#xff0c;除了基本的表格计算功能之外&#xff0c;还提供了丰富的扩展功能&#xff0c;可以用来实现各种自动化操作。例如&#xff0c;我们可以使用活字格来批量导入照片到数据表中。 以下是具体的操作步骤&#xff1a; 在活字格工作表…

rust开发web服务器框架,github排名对比

Rocket Star最多的框架 github仓库地址&#xff1a;GitHub - rwf2/Rocket: A web framework for Rust. Rocket 是一个针对 Rust 的异步 Web 框架&#xff0c;重点关注可用性、安全性、可扩展性和速度。 Axum 异步运行时 githuh仓库地址&#xff1a;GitHub - tokio-rs/axum: …