在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:Doug@#s 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.如果上述方法都無法恢復丟失的文件,那么用戶只有重新編寫,別無它法。