最近幾天由於工作需要,要在suse作業系統下實現乙個驗證root密碼正確性的shell指令碼,沒想到什麼好辦法,最後用乙個取巧的方式應付了,方法如下:
1、通過su - root命令嘗試切換到root使用者;
2、假設密碼是正確的,那麼切換成功後,通過whoami命令列印一下切換後的當前使用者;
3、判斷輸出結果是否是root,來間接證明root密碼是否正確。
具體指令碼如下:
#!/bin/bash
root_pwd=$1
#獲取當前指令碼目錄
cmddir=`dirname $0`
cmddir=`cd $/;pwd`
#定義乙個臨時指令碼,該指令碼用於輸出切換使用者後的當前使用者
temp_script="$/temp.sh"
#生成temp_script指令碼及其內容
echo '#!/bin/bash' >$
echo 'pwd' >>$
#定義切換使用者函式
get_user()
bash $
eof}
#執行切換函式,並獲取輸出結果
user=`get_user`
#判斷是否root使用者
if [ "$" == "root" ]
then
echo "correct root password"
else
echo "invalid root password"
fi
注意事項:
1、該指令碼應在非root使用者下執行
2、get_user函式中的那幾行**要頂格寫(這應該是here document 的要求,否則報錯)
3、實際編寫指令碼的時候最好不用寫中文,哪怕是注釋
起初有想過用expect指令碼來實現,但是關鍵字匹配比較麻煩,因為不同語言的作業系統,其關鍵字不一樣最後還是用了上面的方式。
shell指令碼 自動輸入密碼
平時在控制台輸入指令如 sudo ssh ftp或者修改admin許可權的檔案時候都會要求輸入password,但是在she ll指令碼執行過程中該如何互動實現自動輸入密碼呢?下面總結三種實現方法。shell用重定向作為標準輸入的用法是 cmd 實現ftp自動登入並執行ls指令的用法如下 其中pet...
php利用root許可權執行shell指令碼 二
今天晚上 19 30分,這個困擾了我好久的問題終於解決,其中的原理也終於弄清楚了,總之是利用sudo來賦予apache的使用者root的執行許可權,下面記錄一下 利用php利用root許可權執行shell指令碼必須進行以下幾個步驟 所有步驟都是我親自實驗,若有不妥可指出,謝謝!1.確定一下你的apa...
php 利用root 許可權執行shell指令碼
也可以指定某個shell檔案不需要密碼 www data all all nopasswd var www html filesystem build.sh 1 新增使用者 adduser admin 新增使用者到root使用者組 adduser admin root 2 授予admin的sudo ...