当前位置:Linux教程 - Linux - UNIX 系统紧急情况的处理

UNIX 系统紧急情况的处理



        

    在UNIX系统管理中,经常会碰到各种各样的问题,在有些情况下,系统管理员将面对恢复严重事故所造成的损失,例如,忘记了root帐户的口令或意外地破坏了文件系统等,遇到这种情况时不要惊慌,谁都有可能犯错误,这时寻找挽回损失的方法的过程,可能是学习系统管理的最佳途径,只有很少的情况才需要重新安装系统。下面结合笔者在工作中碰到的问题及解决问题的方法,与广大计算机爱好者共同探讨UNIX系统管理的方法。

    ---- 一、制作紧急启动软盘:

    ---- 在系统管理中,紧急启动软盘是一个非常重要的工具,在系统正常工作时,制作Unix 系统紧急启动软盘,这是一个合格的系统管理员必须做的先前准备工作。在系统遭受灾难性破坏后,如果重新启动系统不作响应,这时即可用紧急启动软盘来恢复系统。可以用这些软盘来恢复遭到破坏的根文件系统,而不用重新安装系统。启动系统进入单用户维护方式,按照如下的步骤就可以制作两张紧急启动软盘,其中一张是系统引导软盘,另一张是根文件系统软盘,在建立紧急启动软盘的过程中,如果所使用的软盘未经过格式化,还需要进行软盘的格式化。

    # mkdev fd
    Floppy Disk Filesystem Creation Program
    Choices for type of floppy filesystem.

    1.48tpi, double sided, 9 sectors per track
    2.96tpi, double sided, 15 sectors per track
    3.135tpi, double sided, 9 sectors per track
    4.135tpi, double sided, 18 sectors per track
    Enter an option or q to quit: 4

    Choices for contents of floppy filesystem.

    1. Filesystem
    2. Bootable only (96ds15 and 135ds18 only)
    3. Root filesystem only (96ds15 and 135ds18 only)
    Enter an option or q to quit: 2
    Insert a 135ds18 floppy into drive 0.
    Press < Enter > to continue or enter q to quit:
    Would you like to format the floppy first? (y/n) n
    /dev/fd0135ds18
    Successfully created filesystem.
    Copying files to /dev/fd0135ds18 …
    135ds18 floppy created and checked successfully.

    Choices for contents of floppy filesystem.

    1.Filesystem
    2.Bootable only (96ds15 an 135ds18 only)
    3.Root filesystem only (96ds15 and 135ds18 only)
    Enter an option or q to quit:3
    Insert a 135ds18 floppy into drive 0.
    Press < Enter > to continue or enter q to quit:
    Would you like to format the floppy first? (y/n) n
    /dev/fd0135ds18

    Successfully created filesystem.
    Copying files to /dev/fd0135ds18 root filesystem …
    Copying special files to /dev/fd0135ds18 root filesystem …
    Root filesystem floppy creation complete.
    **Phase 1 - Check Blocks and Sizes
    **Phase 2 - Check Pathnames
    **Phase 3 - Check Connectivity
    **Phase 4 - Check Reference Counts
    **Phase 5 - Check Free List
    223 files 1866blicks 722 free

    135ds18 floppy created and checked successfully.

    Choices for contents of floppy filesystem.

    1.Filesystem
    2.Bootable only (96ds15 an 135ds18 only)
    3.Root filesystem only (96ds15 and 135ds18 only)
    Enter an option or q to quit: q
    #
    ---- 警告:每台机器的紧急启动软盘是独有的,在一个系统上所制作的紧急启动软盘在另一个系统上是不能用的;如果将一台机器的紧急启动软盘用到另一台机器上,不但不能工作,而且还可能给系统带来更严重的损坏。
    ---- 二、忘记超级用户口令时的处理办法:

    ---- 系统管理员首先需要利用紧急启动软盘启动系统,并且将硬盘上的根文件系统安装到/mnt 目录上,然后编辑相应的文件,删除root 帐号的口令。其步骤如下:

    ---- 1.打开机器的电源;

    ---- 2.将预先制作的 Bootable Disk 插入软驱中;

    ---- 3.根据提示插入 Root Filesystem Disk ;

    ---- 4.系统启动完毕,将自动以超级用户登录系统,安装硬盘上的根文件系统到 /mnt 目录上;

    # mount /dev/hd0root /mnt
    ---- 这样硬盘上原来的 /etc/passwd 文件现在的路径将是 /mnt/etc/passwd
    ---- 5.用vi 编辑相应的文件,删除root 帐户的口令:

    ---- a.对于设置的安全级别较低的系统来说,需要编辑 /mnt/etc/passwd 文件,其文件格式为:Loginname:Password:UID:GID:Userinformation:Home:Shell,删除root 帐户的第二个域中的口令信息。例如,将下例中的第一行信息修改成为第二行信息的形式:

    root:Ctsf6P/L/nav6,..1k:0:1:Superuser:/:
    root:,..1k:0:1:Superuser:/:
    ---- b.对于设置了较高安全级别的系统来说,需要编辑的文件是/mnt/etc/shadow 文件而不是 /mnt/etc/passwd 文件。此时,/mnt/etc/passwd 文件中帐号信息如下:
    root:x:0:1:Superuser:/:
    adm:x:4:4:System accounting:/usr/adm:
    doug:x:200:50:Dougs account:/usr/doug:/bin/sh
    所有帐户的口令都被保存在 /mnt/etc/shadow 文件中,
    其形式如下所示:
    root:Ctsf6P/L/nav6:9881:0:0
    adm:*:9926:0:0
    doug:oTDTuBctxUBtc:9926::
    此时,删除root帐号的第二个域中的口令信息,结果如下:
    root::9881:0:0

    >这样就已经足够了。然而,对于SCO UNIX系统来说,
    还需要修改TCB中记录root帐户信息的文件
    /mnt/tcb/files/auth/root。如下所示为该文件的一个实例:
    root:u_name=root:u_id#0:\
    :u_pwd=Ctsf6P/L/nav6nG93LOrWE8.:\
    :u_type=root:u_owner=root:u_cmdpriv=audit
    ,audittail,auth,su,passwd,backup,queryspace,
    cron,lp,printqueue,printerstat,mem,sysadmin,
    terminal,uucp,root,shutdown:\
    :u_syspriv=suspendaudit,configaudit,writeaudit
    ,execsuid,nopromain,lable_terminal,chmodsugid,chown:\
    :u_minchg#0:u_exp#0:u_life#0:u_succhg#853800243:\
    :u_pswduser= root:u_pickpw:u_genpwd:u_restrict@:\
    :u_nullpw@:u_suclog#857692723:
    u_suctty=tty02:u_unsuclog#857692714:\
    :u_unsuctty=tty02:u_maxtries#0:u_lock@chkent:
    ---- 要想删除root帐户的口令,需要删除该文件的第二行,或者是删除带有"u_pwd" 标记的域,这样root帐户就没有口令了。
    ---- 6. 拆卸掉硬盘上的文件系统,并且重新启动系统。

    # umount /mnt
    or
    # umount /dev/hd0root
    ---- 注意:在修改硬盘文件系统中的文件时,要千万小心,不要误删其它的信息。
    ---- 三、系统无法启动时的处理方法:

    ---- SCO UNIX系统中负责引导与装入系统核心的文件共有三个:/boot、/etc/default/boot和/unix文件。因此,当系统被破坏无法启动时,利用紧急启动软盘启动系统,然后从软盘上运行fsck 命令来修复硬盘上文件系统中被损坏的数据,此时最好不要安装硬盘上的文件系统。硬盘上文件系统修复完成之后,检查其是否缺少三个重要的启动文件,如果缺少某个启动文件,则将其拷贝到硬盘文件系统中。

    ---- 四、恢复丢失的文件的方法:

    ---- 如果用户不小心删除了重要的文件,UNIX没有类似MS-DOS中UNDELETE 之类的办法直接恢复。但可以用以下方法来恢复:

    ---- 1.从紧急启动软盘中将相应的文件拷贝到硬盘文件系统中。

    ---- 2.如果被删除的某个文件不在紧急启动软盘中,

    ---- a.可以从其它的系统中拷贝该文件;

    ---- b.可以从备份系统中恢复该文件。

    ---- 3.如果上述方法都无法恢复丢失的文件,那么用户只有重新编写,别无它法。

    发布人:netbull 来自:非常Linux