Bash
Bash 腳本:要求腳本以 root 身份執行(或使用 sudo)
我正在嘗試編寫一個 bash 腳本(在 Ubuntu 中),它將使用 tar 備份一個目錄。
如何檢查腳本,使其只能以 root 身份執行(或使用 sudo)?
例如,如果使用者執行腳本,它應該說該腳本必須以 sudo 權限執行,然後退出。如果腳本以 root 身份執行,它將繼續通過檢查。
我知道必須有一個簡單的解決方案,我只是無法通過Google搜尋找到它。
要提取有效的 uid,請使用以下命令:
id -u
如果結果為“0”,則腳本要麼以 root 身份執行,要麼使用 sudo。您可以通過執行以下操作來執行檢查:
if [[ $(/usr/bin/id -u) -ne 0 ]]; then echo "Not running as root" exit fi
我假設您知道通過將所有權更改為 root
chown root:root *file*
並將權限設置為 700
chmod 700 *file*
您將完成同樣的事情 - 沒有建議以 sudo 執行。
但為了完整起見,我會發布這個答案。