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

By Harry
at 2011-03-24T08:25
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能夠做到嗎?(目前也只會這個還只會皮毛而已…)
--
想法是先判斷作業系統類型(目前只有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

By John
at 2011-03-25T06:57
at 2011-03-25T06:57

By Adele
at 2011-03-25T19:37
at 2011-03-25T19:37

By Thomas
at 2011-03-30T08:32
at 2011-03-30T08:32
Related Posts
more than once in the same rule

By Yedda
at 2011-03-23T19:58
at 2011-03-23T19:58
剛裝完ubuntu下gcc的位置?

By Puput
at 2011-03-23T19:50
at 2011-03-23T19:50
SSH遠端下reboot指令

By Gilbert
at 2011-03-23T17:38
at 2011-03-23T17:38
UBUNTU安裝firefox 4.0

By Eden
at 2011-03-23T16:05
at 2011-03-23T16:05
OPEN SUSE 11.4

By Agatha
at 2011-03-23T11:06
at 2011-03-23T11:06