2012-10-19 67 views
0

我們如何編寫一個shell腳本成爲root? 這是我不想輸入密碼在提示它應該在腳本本身。我試圖做但未能這樣做。如果可以,請解釋。shell腳本成爲root?

+5

這樣做會帶來巨大的安全風險。 –

+0

這是一個風險,但是如果你對此感到興奮:'echo $ PASSWORD | sudo -S $ COMMAND'來自http://ubuntuforums.org/showthread.php?t=791719可能會工作 – TheZ

回答

7

不要這樣做。相反,請學習您的特定系統的內置功能,以使用升級的權限執行命令。如果您碰巧在支持該文件的Linux上,請查看sudosudoers文件。

0

您可以使用expect腳本。或者,如果您正在尋找以root用戶身份執行命令,那麼您可以使用「su -c」選項。

對於納入它的腳本中,你可以使用這樣的事情: -

#!/usr/bin/expect 
spawn su 
set timeout 60 
expect "pass" { 
sleep 1 
send "<my_root_password>" 
} timeout { 
send_user "Error connecting" 
} 
interact 

爲此,您需要有希望出現在您的計算機的二進制文件。

0

可能最好的方法是用SUID Shell腳本,但它不安全,正確的方法是sudo。

+0

而且不適用於shell腳本,僅適用於二進制文件。 – glglgl

+0

我的意思是讓root沒有輸入密碼! – b3h3m0th

+0

「在大多數UNIX版本中,您可以創建shell腳本[即SUID或SGID。也就是說,您可以創建一個shell腳本,並通過將shell腳本的所有者設置爲root並設置其SUID位,可以強制shell腳本以超級用戶權限執行。「實用的UNIX和互聯網安全第二 – b3h3m0th