Ssh

在 shell 腳本中使用 su

  • December 10, 2013

我正在自動化部署過程,我希望能夠在我的機器上呼叫一個 .sh 文件,讓它完成我的建構並將 .zip 上傳到伺服器,然後在伺服器上做一堆事情。我需要做的一件事要求我成為 root。所以,我想做的是:

ssh user@172.1.1.101 <<END_SCRIPT
su - 
#password... somehow...
#stop jboss
service server_instance stop
#a bunch of stuff here
#all done!
exit
END_SCRIPT

這甚至可能嗎?

您是否考慮過無密碼的 sudo ?

使用 sudo 代替 su,並在 sudoers 中設置 NOPASSWD 以獲取適當的命令。您需要盡可能限制允許的命令集。如果您不熟悉 sudoer 文件語法,讓它呼叫為 root 命令執行腳本可能是最簡潔的方法,並且是迄今為止最容易確保安全的方法。對於需要載入完整環境的命令/腳本,sudo su - -c command雖然可能有點矯枉過正。

引用自:https://serverfault.com/questions/160524