有网友在做渗透测试发现网站存在任意文件删除漏洞,测试删除了/etc/passwd,那么删除后该如何恢复?
1. /etc/passwd文件的作用
/etc/passwd 是 Linux 系统中存储用户账户信息的关键文件,包含用户名、UID、GID、主目录路径和默认 Shell 等。删除 /etc/passwd 仍会导致以下问题:
-
用户无法登录(包括 SSH 和本地登录) -
系统服务依赖用户身份时可能崩溃 -
sudo、su 等权限管理工具失效
2. 恢复 /etc/passwd的两种场景
场景一:当前会话仍保持活跃
当前的 SSH 会话或终端会话尚未断开,且当前用户拥有 root 权限,可通过以下步骤恢复:
cp /etc/passwd- /etc/passwd
场景二:会话已断开,需进入单用户模式
若会话丢失,需通过物理控制台或虚拟化平台访问系统:
重启服务器,进入单用户模式,再执行cp /etc/passwd- /etc/passwd,重启即可恢复
如果不清楚如何进入单用户模式,可查看往期文章,链接如下:
3. /etc/passwd- 文件的来源
自动备份机制:/etc/passwd-是/etc/passwd文件的备份文件,比如使用useradd、usermod等命令添加或修改用户信息时。旧文件将会以连字符“-”结尾保存,系统安装后默认存在一份,这一机制同样适用于/etc/shadow-、/etc/gshadow-和/etc/group-等文件,当它们被修改时,旧文件也会以添加-后缀的方式进行备份。
4.防护措施:防止误删或恶意删除
方法一:使用 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
原文始发于微信公众号(网络个人修炼):把/etc/passwd删除了,该怎么办?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论