ここには奇妙な問題があります。残念ながら私はベンダーに属しているのでコードをここに掲載するのは自由ではありませんが、うまくいけば十分な情報を提供できるので、必要ではありません。UNIX/Linuxシェルスクリプトは、現在のユーザーを「終了」してログアウトすることはできますか?
ここで誰かが「bob」が「some_script.sh」を実行することが可能かどうかを確かに判断でき、そのセッションのMIDセッションから出て残りの部分のスクリプトは、ユーザー 'pete'(元々 'ボブ'と偽装されたsu'd)として続行します。
私はこれが不可能だと確信していますが、心に留めておくべき
もの:
- scriptA.shは、これらが10.sqlに至る01.sqlであると仮定することができますデータベース
- に変更を加え、複数の他のプロセス(シリアル)を実行します。
- 適切な引数を指定して 'sqlplus'を実行すると、これが実行されます。
- 'sqlplus'バイナリは、ユーザー 'bob'では使用できますが、ユーザー 'pete'では使用できません。
- ユーザーpeteは現在、ユーザーのbobにsu'dされています。これは、peteにPATHにsqlplusがないためです。
- スクリプト/データベースで見た出力は、'01 .sql 'が正常に実行されたが、他のものは正常に実行されていないことを示唆しました。' sqlplusコマンドが見つかりません 'というエラーで失敗しました。 UIDを切り替えるしようとするスクリプトを使用して
乾杯は、
彼はそれが唯一の理由ですか?ちょうど 'slapate sqlplus | grep bin'をパスに追加してください – Dave
すごい高速応答:)残念なことに、それは私たちのためのオプションではありません - 'bob'は実際にはsqlplusを実行するために必要なすべてのアクセス権とパスエイリアスを持つ機能的なユーザーです他にもいくつかのユーザーが共有しています。 – Sandipan
それであなたは既に問題を発見したようです。 peteはsqlplusを実行することができません。シェルスクリプトが彼に欲しい場合、問題があります。どうしてボブはすべてを動かすことができないのですか? – Dave