【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

お世話になっております。

あるBシェルをJP1に登録しジョブ実行しようとしています。
Bシェル内には複数の処理があり、必要に応じてユーザー変更を行う必要があるのですが上手く行きません。
なお、禁止事項にrootユーザーでJP1実行、suid、guidの未指定があり上手く対応が出来ません。
どなたか上手く行く方法をご存知ありませんか?

行いたい処理は以下の通りです。
(1)実行ユーザーで実行
(2)posgreユーザーでログイン
(3)ダンプファイルを取得
(4)posgreユーザーをログアウト
(5)sshユーザでログイン
(6)ダンプファイルを移動
(7)sshユーザをログアウト
(8)終了


環境は
シェルはBシェル
OSはRHEL5.3
です。

A 回答 (2件)

- sudoを使う(/etc/sudoersの設定を細かく)


- 自分のホストに対してssh、rsh によるネットワーク接続
 ssh -l posgre localhost
 みたいな感じ。ssh の場合はRSA 認証にする必要あり。
- expectでパスワード入力を自動化
 →どこかにposgreユーザのパスワードを書いておく必要あり。

どれも root ユーザで JP1 起動や suid、sgid と比べて
いまいちな方法ですね。suid、sgid は危険と言われますが、
うまく使えば非常にセキュアに実装できるわけですから、
それと比較するのも無理がありますけど。

私ならまずはルール決めした人に相談してみて、実装方法について
それなりの回答をいただくかことを検討しますかね。

こういったケースでどのような実装をすることを想定してルール決めを
行われたのでしょうか?と。

ルール決めした人が答えられないならルールを覆すしかないわけですから。

ただ、他のチームが同様の処理を既に実装している場合は、
それを参考にするのがベターだと思います。

余談ですが、suid、sgidを使う場合、シェルスクリプトファイルに
直接設定することは望ましくありません。

C などで書かれたラッパープログラムを用意して、そこに suid なり
sgid などを設定し、ラッパープログラムでは seuid を行ったり、
exec してシェルを起動したりするように実装するのがよいでしょう。
    • good
    • 0
この回答へのお礼

丁寧な回答ありがとうございました。
参考にさせていただきます。

お礼日時:2010/02/24 10:42

>なお、禁止事項にrootユーザーでJP1実行、suid、guidの未指定があり上手く対応が出来ません。




suid,guidの未指定が禁止なら指定すればいいという話ですが、これはきっと、

>なお、禁止事項にrootユーザーでJP1実行、suid、guidの指定があり上手く対応が出来ません。

の間違いですね。

suとexpectを使うというのはあり得ないと思うので、sudo を使うんでしょうね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
参考にさせて頂きます。

お礼日時:2010/02/24 10:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報