华为云服务器/etc/passwd文件损坏导致云服务器登录失败怎么办?_云淘科技

操作场景

本节操作适用于Linux操作系统云服务器/etc/passwd文件损坏导致云服务器无法登录的问题。

本节操作为紧急恢复系统方法,需要在单用户模式下会将系统备份初始备份/etc/passwd-文件替换已损坏的/etc/passwd文件,该操作会造成自行添加的用户丢失(包括应用运行的用户,可以参考/etc/shadow文件添加其他账号)。
本节操作涉及重启云服务器操作,重启云服务器会造成业务中断,请谨慎操作。

问题描述

Linux系统中多个服务启动失败:Failed to start Login service 、Filed to start Authorization service。

待系统启动后登录,提示密码错误。

根因分析

/etc/passwd和/etc/shadow文件记录所有的用户信息,每个用户都有一个对应的记录行,如果该文件损坏或者误删除会导致登录服务(systemd-logind.service)启动失败,因此用户无法登录。

处理方法

在控制台重启主机,进入单用户模式。

进入单用户模式的详细操作请参考Linux云服务器如何进入单用户模式重置root密码

执行以下命令检查/etc/passwd文件 。

cat /etc/passwd

确认passwd文件已被破坏,执行以下命令使用系统初始的备份passwd-文件替换损坏的passwd文件 。

# cp /etc/passwd- /etc/passwd

该操作会造成自行添加的用户丢失,如果为应用运行的用户会导致应用启动失败,待修复后请自行添加用户。

执行以下命令退出当前根目录至initramfs的根目录。

# exit

重启云服务器。
(可选)待系统启动,添加丢失的用户,例如执行以下命令添加Nginx运行用户nobody并指定该用户shell为/sbin/nologin(请根据场景添加用户,需要登录系统的用户需要指定shell为/bin/bash)。

# useradd nobody -s /sbin/nologin

父主题: SSH连接

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家