- ベストアンサー
シェルスクリプトの書き方
すみません、シェル初心者なのですが、急を用してまして質問させて頂きました。 シェルスクリプトで コマンドを実行する前に他のユーザにスイッチしてから 実行するというのを実現したいのですが・・・ #!/bin/csh コマンド1 コマンド2 ・・・ とコマンド1の前に su コマンドを実行させたいのですが、 パスワードを入力する際、対話式なので どう書いてよいか分かりません。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No2です。 私も遅くなりました。 状況として許されるならば,最初にroot権でスクリプトを実行し,root権が必要ないスクリプト(コマンド)は 一般ユーザに切り替えて実行すれば良いと思います。 スクリプトが二つあったとしてroot権で実行するのがA.sh 一般ユーザ権で実行するのがB.shとすると まずA.shをroot権で実行します。 で,一般ユーザ権で実行させたい部分(B.sh)をA.shの中で 実行すればよいのですが下記方法で実行して下さい。 -- su - $一般ユーザアカウント -c './B.sh' -- rootから一般ユーザになる分にはパスワードの入力がいらないのでパスワードを渡さず,rootと一般ユーザの権限切替ができると思います。 --部分解説-- su - $一般ユーザアカウント -c './B.sh' su - $一般ユーザアカウント ⇒なりたいアカウントの環境を引き継いでユーザ変更を実施する。 su -c './B.sh' ⇒-cの後に続くコマンドをユーザ変更をして実行する。但し,一回限り。 以上で説明になってますか?
その他の回答 (2)
- arancia-1
- ベストアンサー率50% (3/6)
方法が幾つかあるのですが,もう少し情報を下さい。 1.シェル実行の際にパスワードを入力する必要があるか? (パスワードを引数として入れるかどうか) #セキュリティ上芳しくない 2.別途回答がありましたが,sudoコマンドが使える環境であるか? 3.実行したいシェルスクリプトは一般ユーザ権限かroot権限か? 以上教えて頂ければと思います。
補足
すみません、質問にお答えするのが遅くなりました。 1.シェル実行時にはパラメータは渡しますが、パスワードは渡しません。 2.sudoはスクリプトを実行したい環境では使われていないようなので、できれば避けたいといった感じです。 3.実行したいスクリプトは一般ユーザなのですが、 途中、root権限で実行させたいスクリプトがあります。 こんな回答で解りますでしょうか?
- windfactA
- ベストアンサー率63% (52/82)
OSが何かわからないので完全な回答はできませんが、 「sudo」というコマンドを調べてみてください。 # man sudo 一般的な説明は↓こちらにも。
お礼
お礼が遅くなりました。 回答どうもありがとうございました。
お礼
回答ありがとうございます! 教えて頂いたとおりにやったらできました! 勉強になりました。 ありがとうございます。