【Linux文件】把/etc/passwd删除了,该怎么办?

news/2025/3/23 23:26:03/文章来源:https://www.cnblogs.com/o-O-oO/p/18786799

场景:

在做渗透测试发现网站存在任意文件删除漏洞,测试删除了/etc/passwd,那么删除后该如何恢复?

一、 /etc/passwd文件的作用

/etc/passwd 是 Linux 系统中存储用户账户信息的关键文件,包含用户名、UID、GID、主目录路径和默认 Shell 等。删除 /etc/passwd 仍会导致以下问题:

  • 用户无法登录(包括 SSH 和本地登录)
  • 系统服务依赖用户身份时可能崩溃
  • sudo、su 等权限管理工具失效

二、 恢复 /etc/passwd的两种场景

场景一:当前会话仍保持活跃

当前的 SSH 会话或终端会话尚未断开,且当前用户拥有 root 权限,可通过以下步骤恢复:

cp /etc/passwd- /etc/passwd

场景二:会话已断开,需进入单用户模式

若会话丢失,需通过物理控制台或虚拟化平台访问系统:

重启服务器,进入单用户模式,再执行cp /etc/passwd- /etc/passwd,重启即可恢复

如果不清楚如何进入单用户模式,可查看往期文章:🧲CentOS忘记密码常见重置方法🧲

三、/etc/passwd- 文件的来源

自动备份机制:/etc/passwd-是/etc/passwd文件的备份文件,比如使用useradd、usermod等命令添加或修改用户信息时。旧文件将会以连字符“-”结尾保存,系统安装后默认保存一份,这一机制同样适用于/etc/shadow-、/etc/gshadow-和/etc/group-等文件,当它们被修改时,旧文件也会以添加-后缀的方式进行备份。

四、防护措施:防止误删或恶意删除

方法一:使用 chattr设置不可变属性

通过 chattr 为文件添加不可修改/删除属性(即使 root 用户也无法直接操作):

chattr +i /etc/passwd
chattr +i /etc/shadow

解除属性(需时):

chattr -i /etc/passwd   
# 取消不可变属性后再修改

方法二:定期备份与版本控制

采用整机备份或手动备份关键文档,例如

cp /etc/passwd /etc/passwd.bak
cp /etc/shadow /etc/shadow.bak

参考🔗:

https://www.cnblogs.com/linuxprobe/p/12551075.html
https://access.redhat.com/solutions/106363

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20244210 实验一《Python程序设计》实验报告

20244210 2024-2025-2 《Python程序设计》实验一报告 课程:《Python程序设计》 班级:2442 姓名: 陈可 学号:20244210 实验教师:王志强 实验日期:2024年3月18日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能; 3.编写程序,练习变…

Linux命令:top

Linux命令:top 简介 Linux top 是一个在 Linux 和其他类 Unix 系统上常用的实时系统监控工具。它提供了一个动态的、交互式的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息。 语法 top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]参数说明:-d <秒数>:…

一次Java后端服务间歇性响应慢的问题排查记录

分享一个之前在公司内其它团队找到帮忙排查的一个后端服务连接超时问题,问题的表现是服务部署到线上后出现间歇性请求响应非常慢(大于10s),但是后端业务分析业务日志时却没有发现慢请求,另外由于服务容器`livenessProbe`也出现超时,导致容器出现间歇性重启。分享一个之前…

作业3:结对项目

这个作业属于哪个课程 软工23级这个作业要求在哪里 作业要求链接这个作业的目标 合作实现一个自动生成小学四则运算题目的命令行程序项目成员 陈日强 3123004736, 李铭恩 3123004745Github仓库链接 Math-Quiz-Generator一、PSP表格PSP2.1 阶段 任务 预估耗时(分钟) 实际耗时(…

鸿蒙NEXT开发案例:程序员计算器

【环境准备】 • 操作系统:Windows 10 • 开发工具:DevEco Studio 5.0.1 Release Build Version: 5.0.5.306 • 目标设备:华为Mate60 Pro • 开发语言:ArkTS • 框架:ArkUI • API版本:API 13 【项目背景与价值】 在程序员日常开发中,常常需要进行复杂的数学运算(如三角…

自定义异常--java进阶day08

1.自定义异常2.自定义异常的格式 看你想要定义哪种异常,对应的继承哪种异常类以我们之前写的代码举例,Exception类过于庞大,所有的异常子类都可以被它接收,这样就会导致无法精确捕获,所以我们要自定义异常我们自定义一个学生年龄异常定义了自己写的异常后,setAge里面抛出…

boolean io.swagger.v3.oas.models.media.Schema.getExampleSetFlag()

java17 <springdoc.version>2.3.0</springdoc.version> 错误信息 jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: boolean io.swagger.v3.oas.models.media.Schema.getExampleSetFlag() 确保项目中使用的 swagger-cor…

异常的两种处理方式--java进阶day08

1.异常的默认处理流程 java中,对于异常的默认处理方式是--向上抛出 之前我们说过,异常都是类,当某个程序出错后,就会自动生成该异常对象,而这个异常对象就如同一颗雷.java的异常默认处理方式--向上抛出,其中上,就是指上一级,调用该程序的那个逻辑 所以,在错误代码那一…

在centOS上更新yum资源报错:Cannot find a valid baseurl for repo: base/7/x86_64

在centOS中更新yum 的资源和新的依赖时,报:Cannot find a valid baseurl for repo: base/7/x86_64 报错内容:[root@localhost ~]# yum update 已加载插件:fastestmirror Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo…

并行计算架构和编程 | Assignment 1: Performance Analysis on a Quad-Core CPU

from pixivvAssignment 1: Performance Analysis on a Quad-Core CPU Environment SetupCPU信息 Architecture: x86_64CPU op-mode(s): 32-bit, 64-bitAddress sizes: 46 bits physical, 57 bits virtualByte Order: Little Endian C…

Contest3923 - 计科23级算法设计与分析上机作业-03

A.质数 题面思路 考虑到输入数据量较大,选择线性欧拉筛预处理 示例代码 #include<bits/stdc++.h>using namespace std;#define ll long long //#define int ll #define pii pair<int, int> #define all(x) x.begin(),x.end() #define fer(i, m, n) for(int i = m;…

leetcode 4. 两个有序数组的中位数(第k大的数)

假设有前 k 小的数,分配到两个数组中综上, 前k-1数的边界偏离(k-1)/2 时,由于大于(k-1)数边界的挤压会伴随小于k的数的边界的外延, 其在(k-1)/2会呈现一方比另一方大的情况,可以直接判定小的一方在小于k的数的边界内 而当k-1数正好在边界内,则同样可以判定小的数在小于k的…