2016-02-24 23 views
1

我正在處理一個腳本,在該腳本中需要更改用戶,我有sudo訪問權限,我嘗試了類似下面的操作,但沒有成功。如何使用sudo和密碼切換shell腳本中的用戶

echo $passwd | sudo -S su - oracle 

我甚至試過安裝ssshpass,但沒有成功。這甚至可能或者我需要安裝其他東西來完成這項工作?

任何想法

+0

須藤是安全撰寫腳本,並總是需要從鍵盤輸入,而不是從標準輸入。我不知道如何以另一種方式切換用戶,對不起。 –

回答

2

如果將運行,用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

相關問題