linux shll:sudo的相關使用

判斷當前用戶是否有sudo權限

判斷當前是否有sudo權限可以用sudo -v返回0爲sudo user,否則不是。
使用示例:

if sudo -v &>/dev/null;
then  
	echo $(whoami) is sudo user; 
else 
	echo $(whoami) is not sudo user; 
fi

判斷sudo用戶密碼是否正確

想要判斷sudo用戶密碼是否正確基本的原理就執行一條簡單的sudo命令,用-S選項允許從stdin輸入密碼,看看是否能成功執行。如果能就代表密碼是正確的,否則就不正確。
在執行這個sudo 命令前,先要用-k選項執行sudo,完全移除時間戳文件,否則sudo會記憶之前輸入的密碼,導致返回值不正確。

# 驗證 sudo 密碼是否正確
# $1 待驗證密碼
# 密碼正確返回0,否則返回1
function valid_sudo_pwd(){
	sudo -k
	echo "$1" | sudo -lS &>/dev/null
}

my_pwd="your_password"
if valid_sudo_pwd $my_pwd
then
	echo [$my_pwd] is valid password of $(whoami)
else
	echo [$my_pwd] is invalid password of $(whoami)
fi
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章