linux 找回当前密码错误,Linux系统错误恢复-/etc/passwd文件解析

etc/passwd和/etc/shadow对于整个系统来说是至关重要的,关乎到系统能否正常使用和登陆。本人就linux主机灾难恢复阐述/etc/passwd作用。

故障起因:

创建账户useradd sky然后将root加入到sky用户组usermod -G sky root,之后将用户sky删除userdel –r sky,然后又新建了用户sky,将其加入到test用户组中,useradd -g test sky,重启之后发现系统无法进入,报错如下:

login as: root

root@192.168.192.129's password:

Last login: Sat Jul 31 18:48:53 2010 from 192.168.192.1

-bash-3.2#

使用其他用户登录也无法登陆:

login as: test

sungh@192.168.192.129's password:

Last login: Sat Jul 31 18:36:25 2010 from 192.168.192.1

[sungh@localhost ~]$ su -

口令:

su: warning: cannot change directory to sky: 没有那个文件或目录

-bash-3.2#进入图形化界面tty7也报错,报错信息如下图所示:

2010101108433940.jpg

2010101108441857.jpg

-bash-3.2# ls /home     #可以看出系统中并无sky用户

small sungh test

后果就是无法登陆进入系统,系统处于瘫痪中。

故障分析:

根据报错信息来看,su: warning: cannot change directory to sky: 没有那个文件或目录

Cat /etc/passwd查看如下:

-bash-3.2# cat /etc/passwd

root:x:0:0:sungh,china's office,110,120:sky:/bin/bash …………………………………………………………

test:x:502:504::/home/test:/bin/bash

系统中有sky用户组却没有sky这个用户,初步怀疑是/etc/passwd有问题导致

故障处理:

修改/etc/passwd的root字段,

修改为root:x:0:0:root:sungh:sky:/bin/bash。然后重启,使用root登陆,发现root都无法登陆了,更崩溃了。登陆提示如下:

login as: root root@172.19.10.39's password: Access denied

于是,进入单机模式,恢复之前修改的/etc/passwd文件的root字段,

进入单机用户模式的方法如下:

出现GRUB引导画面时,按字母e键,进入GRUB编辑状态。

按↑键或↓键选择相应的引导项,并再接字母e键进入命令行编辑。

在出现的命令行上添加"1"或single,并按键,返回GRUB编辑状态。

按字母b键,引导进入单用户模式。

之后仔细查看/etc/passwd字段的含义,发现之前的改动是错误的,严格对照错误信息进行改动,将root字段如下改动:

root:x:0:0:root:/root:/bin/bash恢复了系统的正常登陆。

/etc/passwd字段信息的含义如下所示:

LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL

LOGNAME    用户登录名

PASSWORD   加密的密码存储在/etc/shadow中,此处显示x

UID         用户ID,任何拥有0值UID的用户都具有根用户(系统管理员)访问权限,通常500是默认的第一个新建用户的ID

GID             用户组ID,同上

USERINFO     备注信息

HOME         用户home目录路径,即用户的工作目录

SHELL         给用户指定的shell程序

故障总结:

故障的原因是由于/etc/passwd文件信息错误导致的。

起初将root字段改为root:x:0:0:root:sungh:sky:/bin/bash,与正确的字段对比发现,最后一个字段shell字段被挤到第八个字段中,系统只认得7个字段,导致用户root在登录时无法取得相应的shell,故登陆报错,访问拒绝。

而后恢复之前的信息,在仔细检查此字段,发现用户shell登陆的时候无法取得家目录,如上图截图所示,修改家目录sky为/root,其余无需改动,之后重启,登陆,问题解决。

userdel -r sky时,组sky已经删除,而root用户还有在组sky里,所以是可能导致进入-bash-3.2#模式的原因。(应该是shell)-bash- 3.2#是找不到默认bash配置文件的情况下bash这个shell初始的提示符。类似DOS提示符。

注:尽量不要使用root进行操作,权限太大~出现问题后,仔细分析,总会有解决办法的。

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值