2017-02-24 11 views
0

私はUNIXとスクリプティングの初心者ですので、下記のシナリオであなたの助けが必要です。 私はそのが正しくXYZのユーザーでログインするためにいくつかの他の情報私のxyzのユーザーのパスワードを入力する私を求めパテから、このbashのファイルを呼び出していた場合、これらは私.SHファイルの内容シェルスクリプトで複数のコマンドを実行することができません

#!/bin/bash 
usrun xyz 
whoami 

です。 ログインに成功すると、puttyの$サインは#### xyz $に変わります。そのため、xyzユーザーのために新しいセッションを開こうとしています。 その後、whoamiコマンドは実行されません。私がexitと入力した後で、whoamiコマンドが実行されています。

なぜこのようなことが起こりますか? xyzユーザーの認証に成功した後にwhoamiコマンドを実行する方法は?

####は、私が現在パテで接続している私のサーバの最後の4桁を表します。

+1

シェルスクリプトは通常、それらが意図されているマシンから実行されていますタッチ。リモートで実行する場合は、実行時またはスクリプト中にその情報を含める必要があります。これを含むリモートサーバーに対してシェルスクリプトを実行することに関するこの情報は、既にこの情報をカバーしています。http://unix.stackexchange.com/questions/87405/how-can-i-execute-local-script-on-remote- machine-and-include-arguments –

+0

'usrun'のように聞こえて新しいシェルを開きます。そのシェルが終了するまであなたのスクリプトはブロックされ、* who *は 'whoami'を実行します。 'usrun'が実行すべきコマンドとして' whoami'を指定する何らかの方法が必要です。 – chepner

+0

ありがとうございましたMichael..for link..私はこのスクリプトを動作させることができません。 –

答えて

0

パラメータなしのコマンドusrunは、bashスクリプトの実行をブロックします。したがって、コマンドが終了しなくなるまで(exitを入力すると)、次のコマンド(whoami)は実行されません。

あなたがマシンにログインし、コマンドを実行したい場合は、試してみてください:

#!/bin/bash 
usrun -u xyz whoami 

-uオプションは、ユーザーを指定することができますし、次のコマンドを実行するために提供することができます。

あなたはパテを使用してリモートマシンに複数のコマンドを実行したい場合、私はあなたがこのポストに似たものに従うことをお勧め:

https://superuser.com/questions/1103873/how-to-type-commands-in-putty-by-creating-batch-file

+0

こんにちはChristián..私はあなたが示唆した上記のアプローチを試みたが、私のように私のために働かなかったコマンドを実行しようとすると例外が拒否されました.. –

+0

私は基本的なusrunの基本的な読書を行っていますが、基本的に特権ユーザーのアクセス制御を提供しています。その新しいサイトではusrun -u xyz "command"それは起こっていません。認証プロンプトなしでコマンドを直接実行しようとしていて、権限拒否の問題が発生しています。 –

+0

あなたは#をお勧めしますか?/bin/bash usrun xyz -u xyz whoami?私はコメントを投稿するためのアプリを使用しているので、私の答えをフォーマットすることができません。 –

関連する問題