2016-05-31 65 views
0

我以用戶JSmith的身份登錄。 作爲這個用戶,我運行一個運行一系列可執行文件的csh腳本。 但是,其中一個可執行文件需要與用戶HJones一起運行。 之後,其他可執行文件應該與用戶JSmith一起運行。 請注意,JSmith不是root用戶,並且HJones的密碼是「abcd」。 如何在腳本運行期間將用戶更改爲HJones,運行我的可執行文件,然後切換回JSmith。在使用非root用戶執行csh腳本期間更改用戶

下面是run_execs.sh文件中的一些代碼,我使用用戶JSmith運行。

#!/bin/csh -f 

cd $EXEC_DIRECTORY 

./doJSmithThis 
./doJSmithThat 

sudo -u HJones ?? 

./doHJonesStuff 

sudo -u JSmith ?? 

./doJSmithAnother 
./doJSmithMoreStuff 

回答

0

su -c './doHJonesStuff' - HJones將要運行腳本doHJonesStuffHJones,也不會影響到你的其他命令。

#!/bin/csh -f 

cd $EXEC_DIRECTORY 

./doJSmithThis 
./doJSmithThat 

su -c './doHJonesStuff' - HJones 

./doJSmithAnother 
./doJSmithMoreStuff 
+1

HJones密碼保護,那麼我如何傳遞密碼? JSmith不是root用戶。 – didjek

+0

@didjek哦對。抱歉。編輯。 –

0

如果你想csh的腳本來提供密碼:(該sleep 1是存在的,因爲su會丟棄前提示到達密碼)

(sleep 1 ; echo abcd) | socat -,ignoreeof EXEC:'su -c ./doHJonesStuff HJones',pty