HOWTO: Reset root Password of OpenSuSE 10.2(via LiveCD)

看過我的前面某篇重設 root密碼教學的人…如果和我一樣跑OpenSuSE 10.2的應該會發現…
按照文中的步驟要重設密碼時…會出現如下圖的Error message:
 
找了幾天終於找出解決之道,先說一下問題的成因好了:
 
1.OpenSuSE 10.2預設安裝的device是比較精簡的,其中 /dev/urandom這個檔案所在的package( devs)必須額外安裝
2.預設的密碼是採用blowfish加密的,加密過程需要從系統取一個random值當salt (也就是需要使用到 /dev/urandom)
 
爬了一下man page…發現如果系統中沒有 /dev/random 或 /dev/urandom 則必須以手動方式加入:
mknod -m 644 /dev/random c 1 8
mknod -m 644 /dev/urandom c 1 9
chown root:root /dev/random /dev/urandom
當然這些步驟可以透過安裝 devs來解決…不過要啟用 urandom裝置…步驟可就複雜了,首先必須寫一個start-up時跑的script,內容如下:
    echo "Initializing random number generator..."
random_seed=/var/run/random-seed
# Carry a random seed from start-up to start-up
# Load and then save the whole entropy pool
if [ -f $random_seed ]; then
cat $random_seed >/dev/urandom
else
touch $random_seed
fi
chmod 600 $random_seed
poolfile=/proc/sys/kernel/random/poolsize
[ -r $poolfile ] && bytes='cat $poolfile' || bytes=512
dd if=/dev/urandom of=$random_seed count=1 bs=$bytes
然後另一支shut down時用的,內容如下:
    # Carry a random seed from shut-down to start-up
# Save the whole entropy pool
echo "Saving random seed..."
random_seed=/var/run/random-seed
touch $random_seed
chmod 600 $random_seed
poolfile=/proc/sys/kernel/random/poolsize
[ -r $poolfile ] && bytes='cat $poolfile' || bytes=512
dd if=/dev/urandom of=$random_seed count=1 bs=$bytes
這對很多人絕對是非常困難的工作…怎麼辦?還好已經有人幫你寫好了…就放在 /etc/init.d/ 底下…一個叫做 random的script…
所以只要在 chroot到 / 所在的 directory後執行一下 /etc/init.d/random start (或者SuSE貼心的設計 rcrandom start)…
跑完再打 passwd就可以順利把root的密碼改掉啦…哈哈哈~~又朝統治世界跨進了一小步哪咬牙切齒  (有圖有真相)
這兩天最令我興奮的新聞當然就是EeePC新品發表啦…價格也確定了(規格請參閱此處)
EeePC 2G Surf–NT$7999
EeePC 4G Surf–NT$9999
EeePC 4G–NT$11000  (不過看買到的人入手價都比這個高一點…原來是華碩報的是未稅價)
EeePC 8G(旗艦機)–NT$13800
超心動的說…開始來省吃儉用準備敗一台來過癮囉…衝!
本篇發表於 Linux。將永久鏈結加入書籤。

發表留言