centos服务器用户无法登陆
问题描述:研发同事反馈测试机无法远程登陆
——————————————————————————————————————————————
问题排查:
① 咱们先本地测试SSH测试下,提示没有权限“permission denied”
② 再进机房,接上显示器发现有报错信息(提示分区节点、块有问题);同时输入账号密码后,也是无法登录
既然发现新的问题,那就先解决报错问题,再解决用户无法登陆问题。
——————————————————————————————————————————————
问题解决:
1、咱们通过centos7的U盘启动,进入救援模式;选择“Troubleshooting”——“Rescue a Centos system”——“2”只读模式挂载
2、进入救援模式的shell后,先切换到原有磁盘的系统上;准备修复磁盘
chroot /mnt/sysimage #切换磁盘的shell中
blkid #查看分区的type格式
fsck.ext4 -f -y /dev/mapper/centos-root #通过fsck命令修复分区
umount /dev/mapper/centos-root #如果提示设备忙,无法修复,则先取消挂载
fsck.ext4 -f -y /dev/mapper/centos-root #取消挂载后,再修复对应的分区
exit #退出
exit #退出,等设备重启,进入系统查看是否还有报错信息
设备重启后,发现不再弹出报错信息,但用户依旧无法登陆。
3、还是通过U盘启动,先进入救援模式的shell,然后通过passwd命令修改root密码;
chroot /mnt/sysimage #切换磁盘的shell中 mount -o remount,rw / #以读写的方式重新挂载/目录 passwd #修改root密码
发现报错提示“passwd:Authentication token manipulation error”;
通过搜索网上文档后,发现造成该现象的原因可能是下面两种:
①与用户密码相关的文件被篡改或出现异常(/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow)
②与用户密码相关的文件设置了-i属性,禁止修改;
4、先依次查看相关文件是否存在、是否内容被修改;
cat /etc/passwd cat /etc/shadow #发现内容为空 cat /etc/group cat /etc/gshadow pwconv #根据/etc/passwd文件,新建/etc/shadow文件
cat /etc/shadow #查看内容是否生成
结果发现/etc/shadow文件为空,于是通过“pwconv”命令新建该文件。
5、再次修改密码
chattr -i /etc/*shadow /etc/passwd /etc/group #取消-i禁止修改(别管是否设置过-i属性,直接取消就完了)
passwd #修改root密码
exit #退出
exit #退出
发现密码修改成功,退出后服务器重启进入系统,发现可以通过新的密码登陆,问题解决
总结:一共发现两个问题,磁盘有坏块需要修复和root密码无法修改;之前root用户无法登陆可能也是shadow文件为空导致的。
参考链接:https://help.aliyun.com/document_detail/41542.html