Bash

Bash 腳本:要求腳本以 root 身份執行(或使用 sudo)

  • November 29, 2021

我正在嘗試編寫一個 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 執行。

但為了完整起見,我會發布這個答案。

引用自:https://serverfault.com/questions/37829