shell指令碼驗證root密碼是否正確

2021-08-27 10:36:37 字數 961 閱讀 8152

最近幾天由於工作需要,要在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 ...