2016-05-31 6 views
0

ユーザーJSmithとしてログオンしています。 このユーザーとして、一連の実行可能ファイルを実行するcshスクリプトを実行します。 ただし、これらの実行可能ファイルの1つをユーザーHJonesで実行する必要があります。 その後、他の実行ファイルはユーザーJSmithで実行する必要があります。 JSmithはrootユーザーではなく、HJonesには "abcd"というパスワードがあることに注意してください。 スクリプトの実行中にユーザーをHJonesに変更し、実行ファイルを実行してからJSmithに戻すにはどうすればよいですか。非rootユーザーを使用してcshスクリプトを実行中にユーザーを変更します

ここでは、ユーザJSmithを使用して実行するファイルrun_execs.shにいくつかのコードがあります。など

答えて

0

su -c './doHJonesStuff' - HJones

#!/bin/csh -f 

cd $EXEC_DIRECTORY 

./doJSmithThis 
./doJSmithThat 

sudo -u HJones ?? 

./doHJonesStuff 

sudo -u JSmith ?? 

./doJSmithAnother 
./doJSmithMoreStuff 

HJonesとして、それはあなたの他のコマンドには影響しません doHJonesStuffスクリプトを実行します。

#!/bin/csh -f 

cd $EXEC_DIRECTORY 

./doJSmithThis 
./doJSmithThat 

su -c './doHJonesStuff' - HJones 

./doJSmithAnother 
./doJSmithMoreStuff 
+1

HJonesがパスワードで保護されていますどうすればパスワードを渡すことができますか? JSmithはrootユーザーではありません。 – didjek

+0

@didjek Oh right。ごめんなさい。編集されました。 –

0

パスワードを供給するのcshスクリプトたい場合:

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

(。suプロンプトの前に到着したパスワードを破棄してしまうためsleep 1がある)

関連する問題