|簡體中文

比思論壇

 找回密碼
 按這成為會員
搜索



查看: 787|回復: 0
打印 上一主題 下一主題

Linux系统错误恢复-/etc/passwd文件解析

[複製鏈接]

989

主題

1

好友

5288

積分

教授

Rank: 8Rank: 8

  • TA的每日心情

    2024-9-18 07:17
  • 簽到天數: 1252 天

    [LV.10]以壇為家III

    推廣值
    2
    貢獻值
    378
    金錢
    1714
    威望
    5288
    主題
    989

    回文勇士 文明人 中學生 高中生 簽到勳章 簽到達人 男生勳章 大學生 文章勇士 附件高人 附件達人 文章達人 教授

    樓主
    發表於 2012-9-21 23:40:18
    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也报错,报错信息如下图所示:







    -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进行操作,权限太大~出现问题后,仔细分析,总会有解决办法的。
    重要聲明:本論壇是以即時上載留言的方式運作,比思論壇對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,讀者及用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,讀者及用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本論壇受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者及用戶發現有留言出現問題,請聯絡我們比思論壇有權刪除任何留言及拒絕任何人士上載留言 (刪除前或不會作事先警告及通知 ),同時亦有不刪除留言的權利,如有任何爭議,管理員擁有最終的詮釋權。用戶切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。

    手機版| 廣告聯繫

    GMT+8, 2024-9-28 01:24 , Processed in 0.019692 second(s), 27 queries , Gzip On.

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回頂部