当Linux实例中关键的系统用户不存在时,可能导致无法远程登录。您可以通过实例健康诊断工具进行问题修复。
前提条件
Linux实例已通过实例健康诊断工具进行诊断,诊断结果中实例无法启动场景的根账号检查未通过。
背景信息
问题描述:在Linux操作系统中,/etc/passwd文件存储了系统所有用户的基本信息,/etc/shadow文件存储了系统用户的密码信息。如果文件中关键的系统用户信息(例如root用户及密码)丢失,将导致无法正常登录该实例。
解决方案:您需要恢复/etc/passwd和/etc/shadow配置文件的信息。此外,/etc/group文件中存放了系统用户组的基本信息以及用户与用户组之间的关系信息,也需要一同修复。
操作步骤
准备正确的系统用户信息配置文件。
由于不同的Linux发行版中关键的系统用户有所不同,且您在使用过程中可能创建了其它系统用户,因此修复系统关键用户信息丢失的问题需要您根据不同的Linux发行版而定。
建议您通过一台正常运行的ECS实例获取正确的系统用户配置文件信息,作为修复问题实例的参考文件。正常运行的ECS实例需要和问题实例使用同一Linux发行版本,并且安装了相同的软件包。所需正确的系统用户配置文件信息的路径如下所示:
/etc/passwd
/etc/shadow
/etc/group
您可以直接在正常运行的ECS实例内查看正确的配置文件信息,也可以将正确的配置文件信息下载至本地主机进行查看。本文以CentOS 7.5系统为例,配置文件的内容示例如下:
/etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
/etc/shadow
root:$6$Q9lA****/t1KPM$JLqO59UTxwGm****/rU7bHL0q5TVAij****/KeWAWPiO.6booVwpp7rdR9****.irQ6nso3YGVSqQqpyT****.:18668:0:99999:7:::
bin:*:17632:0:99999:7:::
daemon:*:17632:0:99999:7:::
adm:*:17632:0:99999:7:::
lp:*:17632:0:99999:7:::
sync:*:17632:0:99999:7:::
shutdown:*:17632:0:99999:7:::
halt:*:17632:0:99999:7:::
mail:*:17632:0:99999:7:::
operator:*:17632:0:99999:7:::
games:*:17632:0:99999:7:::
ftp:*:17632:0:99999:7:::
nobody:*:17632:0:99999:7:::
systemd-network:!!:17864::::::
dbus:!!:17864::::::
polkitd:!!:17864::::::
sshd:!!:17864::::::
postfix:!!:17864::::::
chrony:!!:17864::::::
ntp:!!:17864::::::
tcpdump:!!:17864::::::
nscd:!!:17864::::::
/etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:33:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
input:x:999:
systemd-journal:x:190:
systemd-network:x:192:
dbus:x:81:
polkitd:x:998:
ssh_keys:x:997:
sshd:x:74:
postdrop:x:90:
postfix:x:89:
chrony:x:996:
ntp:x:38:
tcpdump:x:72:
nscd:x:28:
远程连接问题实例。
当ECS实例处于正在挂载修复盘的模式下时,只能通过VNC远程连接。具体操作,请参见通过密码认证登录Linux实例。
查看问题实例原有系统盘的挂载信息。
在临时挂载的修复盘中,问题实例原有系统盘的文件系统会被挂载到某一临时目录下。您可以通过以下任一方式查看所在的临时目录信息:
通过ECS控制台的实例健康诊断结果获取,对应的信息格式示例如下所示:/tmp/ecs-offline-diagnose_disk-bp19bspzms79kqse****。
在临时挂载的修复盘中,运行mount命令查看。例如,问题实例原有系统盘的设备路径为/dev/vda,命令示例如下所示:
mount | grep /dev/vda
返回结果如下所示:
/dev/vda1 on /tmp/ecs-offline-diagnose_disk-bp19bspzms79kqse**** type ext4 (rw,relatime)
运行chroot命令,将根目录切换为问题实例原有系统盘所在的临时路径,并进入chroot环境。
您需要在问题实例原有系统盘所在的临时路径中进行文件修复。例如,临时路径为/tmp/ecs-offline-diagnose_disk-bp19bspzms79kqse****,命令如下所示:
chroot /tmp/ecs-offline-diagnose_disk-bp19bspzms79kqse****
在chroot环境中,运行以下命令,备份/etc/passwd与/etc/shadow原文件。
cp /etc/passwd /etc/passwd.bak
cp /etc/shadow /etc/shadow.bak
补充/etc/passwd文件缺失的信息。
通过ECS控制台的实例健康诊断结果,获取缺失的系统关键用户的信息。
在已准备好的正确的系统用户信息配置文件/etc/passwd中,找到对应的系统关键用户信息,然后复制所在行的内容。
将内容粘贴到chroot环境的/etc/passwd文件中对应缺失的位置。
说明 修复状态的ECS实例只能通过VNC远程连接,当您需要输入复制的内容时,单击顶部的VNC复制命令输入按钮。
/etc/passwd文件中格式说明如下所示。
一行用户信息的示例内容如下所示:
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
每一行用户信息被冒号(:)分隔为7个字段,每个字段对应的说明如下:
用户名:密码:uid:gid:用户描述:主目录:登录shell
粘贴后,您需要对新增的用户信息进行检查:
新增用户信息中的uid不能与文件中其他用户的uid重复。
新增用户信息中的gid必须存在于chroot环境的/etc/group文件中。如果不存在,需要复制正确的/etc/group文件中对应的gid所在行到chroot环境的/etc/group中,并确保新增内容的gid不能与文件中其它的gid重复。
例如:
chroot环境的/etc/group文件中存在对应的gid为89,则已满足要求,无需对/etc/group文件进行改动。
chroot环境的/etc/group文件中不存在对应的gid为89,则需要复制正确的/etc/group文件中对应的gid所在行到chroot环境的/etc/group中,且不能与其它行的gid重复。
新增用户信息如果在正确的/etc/group文件中存在用户和用户组的关联关系,则在chroot环境的/etc/group文件中也需要保持一致的关联关系。
例如:chroot环境中的/etc/passwd文件中缺失了postfix用户,除了需要复制正确的/etc/passwd和/etc/group文件中的配置项,如果正确的/etc/group文件中配置了postfix用户同时属于mail组(例如mail:x:12:postfix),则需要将该配置项复制到chroot环境的/etc/group文件中。
补充/etc/shadow文件缺失的信息。
通过ECS控制台的实例健康诊断结果,获取缺失的系统关键用户的信息。
在已准备好的正确的系统用户的密码信息配置文件/etc/shadow中,找到对应的系统关键用户信息,然后复制所在行的内容。
将内容粘贴到chroot环境的/etc/shadow文件中对应缺失的位置。
说明 修复状态的ECS实例只能通过VNC远程连接,当您需要输入复制的内容时,单击顶部的VNC复制命令输入按钮。
如果chroot环境的/etc/shadow文件中信息未缺失,则不需要粘贴。
修复完成后,退出修复环境,然后检查问题实例的当前状态。
运行exit命令,退出chroot环境。
在ECS控制台的实例健康诊断页面,卸载临时挂载的修复盘并恢复问题实例至正常模式。
远程连接已修复的ECS实例,确认成功登录。
特别声明:本平台所发布的部分公开信息来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点,本平台所提供的信息,只供参考之用。不保证信息的准确性、有效性、及时性和完整性。如有侵权请联系qq客服删除,Linux实例中关键的系统用户不存在时,可能导致无法远程登录
来源:网络 浏览:162次 时间:2023-02-08
- 上一篇: SSH的访问权限异常导致无法远程连接Linux实例
- 下一篇: 阿里云ECS实例启动/停止异常常见问题
相关资讯
- 能减轻脂肪肝,还能减肥?就是这种碳水!
- 边旅行边结婚 说走就走的“领证登记游”自带甜蜜浪漫氛围
- 肥胖对身体器官的伤害有多大?漫画长图带你看
- 什么是无效减重?该如何避免?身体竟有“代谢记忆”?
- 熬夜能减肥?不吃油脂才健康?这些误区要避开
- 身体健康的十项指标,看看你知道几个?
- 2 块钱一袋的小苏打,居然有这么多用处,真的建议家中常备!
- 5月必吃的几种水果,低糖营养好!这样挑准没错→
- 男子吃10个小龙虾过敏,双眼肿成青蛙!
- 维生素 C 是西梅的 16 倍,还高钙高蛋白质!这种“长寿菜”现在吃正好
- 女子在家搞卫生后高烧40°C,肺都“发霉”了!广东人急了:这细节千万警惕
- 防歪指南!专家教你两步“自测法” 科学防治青少年脊柱侧弯
- 孩子发热、咽痛还伴皮疹,“小红人”到底是种什么病?
- 中国跨境电商海外破圈 从“流量红利期”迈向“价值深耕期”全新阶段
- 严重可致死!母子双双进ICU抢救!医生提醒:不要买,不要吃!
最新资讯
- 2025-05-19聊城市2025年中考报名填报志愿系统wsb...
- 2025-05-19揭阳市高中阶段学校招生考试管理系统jyzk...
- 2025-05-192025年扬州市中考成绩查询入口www.y...
- 2025-05-14邢台市初中学生综合素质评价电子平台www....
- 2025-05-14东丰县初中学生综合素质评价平台jlly.h...
- 2025-05-14秦皇岛初中学生综合素质评价电子平台czzp...
- 2025-05-14山东初中学生综合素质评价信息管理系统szp...
- 2025-05-14鄂尔多斯市初中学生综合素质评价管理系统04...
- 2025-05-14温州市初中综合素质评价系统登录pjglpt...
- 2025-05-14江西省初中学生综合素质评价信息管理系统cz...