首页 > 系统相关 >问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作

问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作

时间:2024-08-04 09:55:34浏览次数:10  
标签:文件 登录 passwd 用户 etc Linux

问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作

引言

在维护Linux系统的过程中,可能会遇到各种紧急情况,其中/etc/passwd文件的损坏是运维人员特别需要准备应对的一种情形。该文件作为Linux用户账户信息的核心存储,一旦遭到破坏,会直接导致用户无法登录,甚至系统服务失败。这次处理问题的记录会提供一个详细步骤,以帮助恢复损坏的/etc/passwd文件,从而快速解决登录失败危机。

应用场景

这个解决方法主要应用于因/etc/passwd或/etc/shadow文件损坏导致的Linux系统登录故障。这通常发生在文件被意外删除或损坏的情况下,可适用于多数使用Linux操作系统的服务器,尤其是云主机。

请注意:此操作涉及到系统的底层修改,并可能需要重启主机,这将暂时影响当前运行的服务和应用。

问题描述

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

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

在众多系统启动失败的症状中,服务启动失败登录时反复提示密码错误是两个常见的迹象,这些都可能指向一个共同的原因——即/etc/passwd或/etc/shadow文件的损坏。这些文件记录了系统中所有用户的信息,包括用户名、UID、GID、家目录、shell等,是用户管理和验证的关键。

根原分析

在Linux系统中,/etc/passwd和/etc/shadow文件扮演着控制用户访问权限和身份验证的角色。如果该文件损坏或者误删除会导致登录服务systemd-logind.service启动失败,因此用户无法登录。

处理方法

1. 进入单用户模式

重启Linux系统并在启动时按下适当的键(如“e”进入编辑模式),在GRUB菜单选择对应的内核版本,进入单用户模式。这一步骤是为了获得不加载正常使用用户和模块的系统状态,以便我们可以在最小环境下修复文件。

2. 检查与确认文件状态

在单用户模式下,使用cat /etc/passwd命令查看当前的文件内容。

cat /etc/passwd

通常,这个文件会包含以冒号分隔的多个字段,展示每个用户的信息。如果该文件内容残缺不全或者格式异常,这就确认了故障诊断。

3. 文件恢复

在确认文件已损后,可以使用系统备份的文件进行恢复。执行命令cp /etc/passwd- /etc/passwd

cp /etc/passwd- /etc/passwd

这将用较为完好的备份文件/etc/passwd-替换掉当前损坏的/etc/passwd文件。需要注意的是,这一操作可能会导致所有在此之后添加的用户丢失,因为这些信息仅存储在原文件中。

4. 权限与属性修正

替换文件后,为确保系统安全和权限的正确性,应重新设置文件的权限。使用chmodchown命令确保/etc/passwd具有适当的系统权限和所有者。

例如

chmod 644 /etc/passwd
或者
chown root:root /etc/passwd

5. 重启与验证

更改完成,执行下述命令后,再重启系统。

exit

reboot

在系统重启后,尝试使用不同的用户登录验证是否解决了之前的问题。

6. 数据与用户恢复

由于替换文件可能导致用户数据丢失,我们需要根据/etc/shadow文件或其他记录重新添加用户和相关权限。对于运行特定应用所需的用户,如nobody用户,可以执行下述命令进行添加。

useradd nobody -s /sbin/nologin

最后

处理Linux系统中/etc/passwd文件损坏的紧急情况,要求维护人员熟悉系统内部结构和紧急恢复步骤。尽管这类操作可以帮助恢复基本的系统功能,但为避免未来类似问题的发生,建议定期进行文件完整性检查,备份关键配置文件,来识别和预防此类事件。


最后~欢迎关注我! @Linux学习的那些事儿

我的个人资源整理,满满都是干货: 无任何套路,有需要可以访问领取

200T免费资源专区,持续发布中... 

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

标签:文件,登录,passwd,用户,etc,Linux
From: https://blog.csdn.net/weixin_44047596/article/details/140763372

相关文章

  • leetcode数论(2521. 数组乘积中的不同质因数数目)
    前言经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。数论包含最大公约数(>=2个数)、最大公约数性质、最小公倍数、区间范围质因素计数(最下间隔)、质因素分解、判断质数、平方根、立方根、互质、同余等等。描述给你一个正整数数组......
  • Nexpose v6.6.263 for Linux & Windows - 漏洞扫描
    Nexposev6.6.263forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,releaseJul31,2024请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。您的本地漏洞扫描程序搜集通过实时覆盖整个网络,随时了解您的风险。......
  • Linux安装Eigen 3
    下载下载地址gitclone下载到本地安装打开下载路径mkdirbuildcdbuildcmake..sudomakeinstall安装后文件路径usr/local/include/eigen3测试vimeigentest.cpp#include<iostream>#include<eigen3/Eigen/Dense>usingEigen::MatrixXd;intmain(){ Matrix......
  • Leetcode 第 135 场双周赛题解
    Leetcode第135场双周赛题解Leetcode第135场双周赛题解题目1:3222.求出硬币游戏的赢家思路代码复杂度分析题目2:3223.操作后字符串的最短长度思路代码复杂度分析题目3:3224.使差值相等的最少数组改动次数思路代码复杂度分析题目4:思路代码复杂度分析Leetcode......
  • Vanilla OS:下一代安全 Linux 发行版
    VanillaOS是一款新兴的操作系统,旨在为用户提供简单、干净和高效的计算体验。本篇文章将详细介绍VanillaOS,包括其特点、版本信息、安装指南以及如何使用它。无论您是技术爱好者还是寻求用户友好替代操作系统的人,VanillaOS都有值得一试的地方。关于VanillaOSVanilla......
  • Linux内核-内核链表
    1内核链表内核链表本质就是一个双向循环链表:链表的实现仅用一个include/linux/list.h实现。内核链表有别于传统链表就在节点本身不包含数据域,只包含指针域。故而可以很灵活的拓展数据结构。使用时包含在用户数据结构内部。1.1内核链表结构体structlist_head{struct......
  • Linux中的线程3
    死锁在Linux操作系统中,死锁(Deadlock)是指两个或多个进程(或线程)在执行过程中,因互相持有对方所需的资源而又都在等待对方释放资源,导致它们都无法继续执行下去的一种状态。这种僵局会浪费系统资源,甚至可能导致系统崩溃。案例://线程A和B,以及资源X和Y的初始状态资源X:空闲资......
  • 熟练使用linux常用基本命令梳理汇总
    目录Linux基本命令简单认识shell认识命令的基本格式:内建命令与外部命令查看命令的类型-type查看命令的使用方法-helpmkdirpwdtouchecho认识路径lscd认识热键/linux热键treenanocatgccstatrmrmdir基本认识--创建目录权限linux有多少条指令mansudocpmvwc>和>><morelessheadtail管......
  • leetcode 021:删除链表的倒数第 N 个结点
    LCR021.删除链表的倒数第N个结点给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]示例2:输入:head=[1],n=1输出:[]示例3:输入:head=[1,2],n=1输出:[1]structListNode*removeNthF......
  • 【香橙派系列教程】(四)基于ARM-Linux架构的语音控制刷抖音项目
    【四】基于ARM-Linux架构的语音控制刷抖音项目文章目录【四】基于ARM-Linux架构的语音控制刷抖音项目1.语音模块配置1.创建产品2.引脚配置3.词条定义4.添加控制5.发布版本6.烧录固件2.编程实现语音和开发板通信3.手机接入Linux热拔插1.dmesg命令2.adb调试踩坑问题3.总......