Shell
成為 root 的 shell 腳本
我們如何編寫一個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 也有一些問題。