我想一個腳本外殼讓用戶使用su命令不須藤檢查,如果我使用sudo或蘇
我想一個腳本檢查,如果我在我的命令,使用sudo或素,如:
if [ "$USER" != "root" -a "$0" = "sudo" ];then
echo "You have to run this script as a root \"Use : su \" "
fi
我知道是錯的,有人能幫助我嗎?
我想一個腳本外殼讓用戶使用su命令不須藤檢查,如果我使用sudo或蘇
我想一個腳本檢查,如果我在我的命令,使用sudo或素,如:
if [ "$USER" != "root" -a "$0" = "sudo" ];then
echo "You have to run this script as a root \"Use : su \" "
fi
我知道是錯的,有人能幫助我嗎?
您可以使用$ EUID,因爲有效用戶ID將始終爲0 sudo的:) 例子:
#!/usr/bin/env bash
if [[ $EUID = 0 ]]; then
echo "sudo!"
else
echo "not sudo!"
fi
編輯:
上述方法無效,但如果你只是想從一個簡單的bash腳本檢查這個你能做到這一點的黑客:
#!/usr/bin/env bash
if [[ $EUID = 0 && "$(ps -o comm= | sed -n '1p')" = "su" ]]; then
echo "sudo!"
else
echo "not sudo!"
fi
顯然不會承認正常根炮彈,但實際使用蘇被正確識別。 (當其他腳本調用可以打破:/)
真髒和抗嵌套蘇沒有穩定的使用(如套裝在蘇然當須藤仍然可以通過),這可能足以做這樣的事情:
#!/usr/bin/env bash
if [[ $EUID = 0 && "$(ps -o comm= | grep su | sed -n '1p')" = "su" ]]; then
echo "sudo!"
else
echo "not sudo!"
fi
...誠然從(不OK!)類別的解決方案...
非常感謝你,但我知道這個例子;我想要用戶,即使他使用_sudo_它必須得到** Error **,直到他使用su –
如果用__ $ SUDO_USER__替換該變量,該怎麼辦?並測試結果長度? –
剛剛嘗試過($ SUDO_USER),無法正常工作。它仍然返回正常用戶,即使在我su:/ –
爲什麼你需要這樣做?你試圖解決的根本問題是什麼? –
你可能想看看這個:http://serverfault.com/questions/568627/can-a-program-tell-it-is-being-run-under-sudo –
我知道所有的例子作爲根,但我想創建一個腳本拱和拱你可以使用sudo和蘇,所以我怎麼知道他何時使用sudo,當他使用su –