Sudo
Linux 腳本/應用程序以什麼使用者身份執行?
CentOS 在這裡,但我認為這並不重要,因為這應該是 Linux 的核心問題(methinks)。在嘗試在 CentOS 機器上安裝和執行 Apache Kafka(Java 執行檔)時,我想到了一個一般適用於 Linux 的問題。
java
當您執行shell 腳本或本機執行檔(例如/執行檔)?程序是否有可能和/或典型地規定它們以哪個使用者身份執行?這意味著腳本/應用程序可以指定它必須以 root 使用者身份執行,還是以其他特定類型的使用者身份執行?
無論哪種方式,為什麼會有關於以 root 身份執行程序與以非特權使用者身份執行它們的一般警告?
簡短的回答:兩者都有。
更長(並且更有用)的答案:預設情況下,程序將以啟動它的使用者身份執行。但是,如果程序被編寫為這樣做並被賦予正確的權限,則可以假設 root 權限和/或退回到“系統”使用者以執行自己。但是,必須通過打包和安裝過程或通過該機器的管理員採取的行動明確賦予程序此能力。
普遍的警告是存在的,因為 UNIX 和 Linux 的歷史經驗表明,經常使用不需要的提升(即 root)權限的程序通常會對系統造成不良影響。這可能是數據損壞,導致系統其餘部分無法使用/無響應的失控程序,以及無意中允許攻擊者以您不希望的方式訪問您的系統的程序。