判斷當前用戶是否有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