利用shell script修改主機密碼的問題 - Linux

Harry avatar
By Harry
at 2011-03-24T08:25

Table of Contents

因為上面要求所以寫了一個shell script來修改多個主機的密碼
想法是先判斷作業系統類型(目前只有FreeBSD和CentOS兩個)
去下載含有密碼的文件再利用它去改掉密碼
我的寫法大致如下:

whichOS (){
VER=`uname`

if [ $VER == FreeBSD ]; then
return 0
else
return 1
fi
}

getPW (){
if [ $FLAG == 0 ]; then
fetch http://xxx,xxx/newpw > /dev/null 2>&1
newPW=`cat newpw`
else
wget http://xxx.xxx/newpw -O newpw > /dev/null 2>&1
newPW=`cat newpw`
fi
}

changePW (){
if [ $FLAG == 0 ]; then
cat newpw | pw mod user $USER -h 0
else
cat newpw | passwd --stdin $USER
fi
}

USER=$1
whichOS
FLAG=$?
getPW
changePW

rm newpw


直接執行該script後面加上帳號就是改掉它的密碼
例如 ./change.sh xxx
但後來覺得這樣做好像沒有比直接進主機打passwd修改快多少
頂多不用擔心密碼打錯
不知還有哪些地方可以再精進些
而後來還多一個需求是要能夠知道我改了哪些主機密碼改了哪些沒有
還要能夠回報回來
這樣是否也需要多一個database存放所有主機清單並記錄是否已修改密碼的狀態
單用shell script能夠做到嗎?(目前也只會這個還只會皮毛而已…)

--
Tags: Linux

All Comments

John avatar
By John
at 2011-03-25T06:57
系統改用 NIS 或是 LDAP 認證, 整個會簡單點...
Adele avatar
By Adele
at 2011-03-25T19:37
同上所感 為什麼要再去維護N台主機的密碼檔
Thomas avatar
By Thomas
at 2011-03-30T08:32
看看鳥哥的nis那章節吧
自己也在玩@@a

more than once in the same rule

Yedda avatar
By Yedda
at 2011-03-23T19:58
現在在編個嵌入式系統的kernel,lib 與application的 example 編kernel沒什麼問題 但在編application的lib時 就狂出現 make :......more than once in the sam ...

剛裝完ubuntu下gcc的位置?

Puput avatar
By Puput
at 2011-03-23T19:50
我剛裝完ubuntu 需要編東西, 但似乎找不到compiler 另外下載gcc想要安裝 訊息也顯示沒有compiler的樣子, 後來看套件安裝列表, gcc應該已經裝了啊 但,gcc 這指令不能用,, 是需要設定PATH或是? - ...

SSH遠端下reboot指令

Gilbert avatar
By Gilbert
at 2011-03-23T17:38
Hi 大家 我在一塊板子上設好ssh免帳密登入的KEY 因為我想要做的是遠端使用reboot指令讓板子重開機 1. ssh免帳密登入OK, 使用指令: sudo ssh -i $SSHKEY $BOARD_IP 可以直接登入 2. 若是登入板子上下 reboot 當然也是可以正常重開 3 ...

UBUNTU安裝firefox 4.0

Eden avatar
By Eden
at 2011-03-23T16:05
借用標題一問 我安裝好Firefox4之後 設定分頁列至頂之後 發現沒辦法跟Chrome一樣 讓標題列跟分頁在一起 是Firefox本來就如此 還是我有些設定沒弄到? 有辦法能設定好嗎Orz - ...

OPEN SUSE 11.4

Agatha avatar
By Agatha
at 2011-03-23T11:06
借標題問一下: 我使用的網卡是PCI (Planex) GW-USMicroN 以LiveCD開機可以正常抓到網卡並使用 但是不論我以x86_64 LiveCD或是x86_64 DVD安裝 都沒辦法找到網卡(連下ifconfig指令也找不到介面…) 是否OpenSUSE的LiveCD有什麼套件預設並未安 ...