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

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)

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:解决办法:修改/opt/html/目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决 chmod -R 777 /opt/html/。\[1\]这个命令将/opt/html/目录及其子目录下的所有文件和文件夹的权限设置为可读可写可执行。这样做的目的是为了确保nginx能正常访问和操作这些文件。然而,使用chmod -R 777命令修改大批量系统文件的权限是不推荐的,因为这样做可能会导致系统的安全性问题。因此,在使用chmod命令时,应该谨慎考虑权限的设置,避免给文件和目录赋予过高的权限。 #### 引用[.reference_title] - *1* [Nginx 出现403 Forbidden 的几种解决方案](https://blog.csdn.net/weixin_44138647/article/details/103589130)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [centos7下误执行chmod -R 777 /后的权限修复方法](https://blog.csdn.net/weixin_29199873/article/details/116104625)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值