Root
以root身份執行shell命令的方法?
我正在開發一個將在 Amazon EC2 實例上執行並執行某些需要 root 訪問權限的命令的應用程序。問題是不同的虛擬機以不同的方式授予 root 訪問權限。例如,一些 VM 提供對 root 帳戶的直接訪問權限,而其他 VM 將簡單地允許預設的非 root 使用者訪問 sudo。
現在,我可以通過添加一個選項來在所有命令前添加“sudo”,從而輕鬆解決上述範例。但是,我對 unix 不是很熟悉,我想知道是否有任何其他方法可以獲得我應該為我的程序準備的 root 權限。su 和 sudo 是否足夠合理?
有幾個類似 sudo 的工具(calife、op、super ……)——請參閱我如何以系統管理員 (root) 身份執行命令——但你可以在 unix 系統上度過一生而不會遇到它們(它們都已經被 sudo 取代)。在實踐中,如果您需要以 root 身份呼叫腳本,請安排您的所有機器使用無密碼 sudo,或者允許 ssh 以 root 身份登錄。兩者之間沒有太大的安全差異:無論哪種方式,腳本都必須具有訪問 root 帳戶所需的所有憑據。
如果您只希望您的腳本能夠執行特定命令,請在 中為這些命令使用特定條目
/etc/sudoers
,或在 中使用帶有command=
一行的特定鍵~root/.ssh/authorized_keys
。