UnixWare 7 root口令遺失的解決方法
SCO UnixWare 7操作系統在銀行、證券、電信等部門的關鍵業務中有著廣泛的應用。由于各種原因,有時會出現root用戶口令遺失的情況,如果不能正確處理,就只能重新安裝系統。這樣,一方面浪費了大量的時間,并造成業務中斷;另一方面還可能引起數據丟失,造成無法挽回的損失。本文介紹筆者在工作實踐中總結出的一套解決root用戶口令遺失的方法。該方法的基本思路是先進入系統,然后修改或刪除root用戶口令。
進入系統
在遺失root用戶口令的情況下,根據日常的準備工作,有4種可以進入系統的方法。
1. 應急恢復盤法
應急恢復盤由兩張軟盤組成。先后插入兩張應急恢復盤,在出現提示“The hard disk is sane, Press ENTER to continue”時,按回車鍵,系統顯示如下菜單:
Emergency Recovery Menu
Mount File System
Umount File System
Access UnixWare Shell
Restore Disk(s)
Reboot
選擇Mount File System后,系統將硬盤的根文件系統裝載到/mnt目錄下。再選擇Access UnixWare Shell,系統出現#提示符,進入系統成功。
2. 使用boot盤法
首先用第一張引導軟盤引導系統(對支持光驅引導的機器也可以從安裝光盤引導系統),并根據提示插入第二張軟盤。然后按以下步驟執行:
● 按F8推遲許可軟件,即不輸入license號。
● 加載UnixWare HBA 盤。
● 如果有必要進入DCU進行設置(或按F10繼續)。
● 當出現“System node name”提示時,插入安裝光盤(若從光盤引導則不必插入光盤)。
● 按Ctrl+Alt+Esc組合鍵切換到虛屏VT0(按Ctrl+Alt+F1組合鍵可切換回系統安裝界面)。
● 在VT0中,執行下面的命令安裝CD-ROM:
mount -F cdfs -r /dev/cdrom1 /cd-rom
● 注冊vxfs文件系統的模數(UnixWare 7 根文件系統的類型通常為vxfs):
modreg 4 vxfs
● 加載vxfs文件系統的模數:
modadmin -l /cd-rom/.extra.d/etc/conf/mod.d/vxfs
如果系統返回以下信息,表示加載成功:
UX:modadmin:INFO:module /cd-rom/
.extra.d/etc/conf/mod.d/vxfs loaded,ID=1
● 檢查硬盤的根文件系統。假設系統硬盤使用的控制器為0,bus為 0,ID為 0,LUN為0,root的分片為1:
/cd-rom/.extra.d/etc/fs/vxfs/fsck -F vxfs /dev/dsk/c0b0t0d0s1
● 將硬盤的根文件系統安裝到/mnt目錄下:
mount -F vxfs /dev/dsk/c0b0t0d0s1 /mnt
● 為使命令正確運行,重新設定搜索路徑:
PATH=:/usr/bin:/sbin:/usr/sbin; export PATH
3. 第二硬盤法
● 將遺失口令的系統硬盤取下,將硬盤跳線調整為Slave,加掛到另一個UnixWare 7系統中。
● 檢查第二硬盤的根文件系統。假設系統硬盤使用的控制器為0,bus為 0,ID為 1,LUN為0,root的分片為1:
fsck -F vxfs /dev/dsk/c0b0t1d0s1
● 將第二硬盤的根文件系統安裝到/mnt下:
mount -F vxfs /dev/dsk/c0b0t1d0s1 /mnt
4. 系統擁有者(System Owner)注冊法
在安裝UnixWare 7系統時,有一個用戶(缺省UID為101)被分派為系統擁有者,它具有一般用戶所沒有的一些特殊權限,可以通過它來修改root用戶的口令。如果已知它的口令,以它的用戶名注冊到系統中即可。
修改/刪除口令
進入系統后,根據進入方法不同,一般有5種方法可以實現修改/刪除口令。
1. 編輯文件法
● 以1、2、3方法進入系統。
● 編輯shadow文件,將root用戶的加密口令刪除,然后存盤退出:
#vi /mnt/etc/shadow
● 使安全性數據庫一致:
#chroot /mnt creatiadb
● 重新引導系統(對以方法3進入系統的,要將此硬盤還原后重新引導,下同)。再用root用戶注冊時,系統將不提示輸入口令而直接進入系統,然后為root用戶定義一個新口令即可。
2. 應用命令法
● 以1、2、3方法進入系統。
● 用passwd命令直接修改root用戶的口令:
#chroot /mnt passwd root
● 重新引導系統。再用root用戶注冊時,系統將不提示輸入口令而直接進入系統,然后為root用戶重新添加一個口令即可。
3. 文件覆蓋法
筆者在實踐中發現,在UnixWare 7系統中用戶的注冊操作完全是由/etc/security/ia/master文件控制的。因此,我們可以采用“偷梁換柱”的辦法,用已知口令的系統的master文件來替換遺失口令系統的master文件。步驟如下:
● 以1、2、3方法進入系統。
● 備份系統的master文件:
#cp /mnt/etc/security/ia/master /mnt/etc/security/ia/master.old
● 從另外已知root口令的UnixWare 7系統中拷貝master文件到軟盤:
ls /etc/security/ia/master|cpio -ocv >/dev/fd0
● 將軟盤中的master文件拷貝到本系統中:
#cd /mnt/etc/security/ia
#cpio -icvBdum</dev/dsk/f03ht
● 重新引導系統。再用root用戶注冊時,此時的口令即為已知系統的口令。進入系統后,首先恢復原maseter文件:
#cp /etc/security/ia/master.old /etc/security/ia/master
然后修改root用戶的口令:
#passwd
也可以用tar命令實現修改/刪除口令操作。對于按方法1、2進入系統的情況,由于此時系統不提供tar命令,所以使用硬盤中的tar命令即可:
#PATH=$PATH: /mnt/usr/sbin; export
當以方法3進入系統時,直接使用tar命令即可。
4. 網絡特性法
若原機器(設為A機)為Unix局域網中的一臺機器,并且支持TCP/IP協議,則可以利用網絡中相互信任的用戶之間注冊對方系統時不需要口令這一特性來修改A機的root用戶口令。即將另外一臺Unix系統機器(設為B機)的root用戶設為A機可信任的用戶,再從B機上以rlogin的方式注冊到A機(此時已不需要口令),然后修改root用戶的口令。具體操作如下:
● 以1、2、3方法進入系統。
● 修改/mnt/. rhosts文件(若無此文件則新建一個),在文件中加入B機的系統名稱。
● 打開/mnt/etc/inetd. conf文件和/mnt/etc/services文件,檢查是否限制rlogin命令。若有限制,則解除限制。
● 檢查/mnt/etc/default/login文件,將限制root用戶只能在CONSOLES上注冊的參數去掉。即刪除或屏蔽掉參數:CONSOLE=YES。
● 在B機上以root用戶注冊,執行rlogin命令登錄到A機,直接進入“#”狀態,修改root用戶口令:
#passwd
5. 特殊用戶法
● 以方法4 進入系統。
● 修改root用戶口令:
$/sbin/tfadmin passwd root。
這種方法簡單易行,同時也最安全可靠。