Shell

成為 root 的 shell 腳本

  • February 3, 2017

我們如何編寫一個shell腳本成為root?那就是我不想在提示時輸入密碼,它應該在腳本本身內。我試圖做,但沒有這樣做。是否可能,如果是,請解釋。

您可以使用expect工具編寫腳本。

在 Redhat 中,expect 軟體包是預設提供的。但在 Ubuntu 中,您需要單獨安裝它。

您可以使用以下命令進行檢查:

$ rpm -qa | grep expect 對於紅帽

$ dpkg -l expect對於 Ubuntu

以下腳本將完成您的工作:

#!/usr/bin/expect

spawn su -
expect "Password: "
send "password\r"
interact

將 root 密碼的明文儲存在文件中本質上是危險的 - 有很多方法可以恢復它。

這似乎是一個 XY 問題。

委派權限的統一方式是通過 setuid 位 - 但這只能應用於二進制執行檔,而不是 shell 腳本。正如 jordanm 所說,將 setuid 應用於 shell 本身是非常危險的——這就是 sudo 存在的原因——它有一個 setuid 位並根據 sudoers 文件驗證使用者請求,以提供對訪問的細粒度控制。但是 sudo 也有一些問題。

引用自:https://unix.stackexchange.com/questions/52344