1
我正在處理一個腳本,在該腳本中需要更改用戶,我有sudo訪問權限,我嘗試了類似下面的操作,但沒有成功。如何使用sudo和密碼切換shell腳本中的用戶
echo $passwd | sudo -S su - oracle
我甚至試過安裝ssshpass
,但沒有成功。這甚至可能或者我需要安裝其他東西來完成這項工作?
任何想法
我正在處理一個腳本,在該腳本中需要更改用戶,我有sudo訪問權限,我嘗試了類似下面的操作,但沒有成功。如何使用sudo和密碼切換shell腳本中的用戶
echo $passwd | sudo -S su - oracle
我甚至試過安裝ssshpass
,但沒有成功。這甚至可能或者我需要安裝其他東西來完成這項工作?
任何想法
如果將運行,用root帳號你的腳本,你可以
message="The cake is a lie"
su username -c 'echo $message'
如果你與其他用戶有兩種方法可以做到運行腳本,
1)配置pam如下圖所示,所以當你運行su user2 -c'command'登錄user1時,linux不會要求輸入密碼。
添加以下行權pam_rootok.so線以下在/etc/pam.d/su中:
auth [success=ignore default=1] pam_succeed_if.so user = user2
auth sufficient pam_succeed_if.so use_uid user = user1
第一行確保目標用戶是用戶2。如果是,則在主叫用戶爲user1的情況下,下一行將取得控制併成功授權。
如果目標用戶是別的東西,第二行將被忽略,並執行通常的認證步驟。
2)使用期望的那樣here
須藤是安全撰寫腳本,並總是需要從鍵盤輸入,而不是從標準輸入。我不知道如何以另一種方式切換用戶,對不起。 –