プロが教えるわが家の防犯対策術!

すみません、シェル初心者なのですが、急を用してまして質問させて頂きました。

シェルスクリプトで
コマンドを実行する前に他のユーザにスイッチしてから
実行するというのを実現したいのですが・・・

#!/bin/csh

コマンド1
コマンド2
・・・

とコマンド1の前に
su コマンドを実行させたいのですが、
パスワードを入力する際、対話式なので
どう書いてよいか分かりません。

よろしくお願いします。

A 回答 (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の後に続くコマンドをユーザ変更をして実行する。但し,一回限り。


以上で説明になってますか?
    • good
    • 1
この回答へのお礼

回答ありがとうございます!
教えて頂いたとおりにやったらできました!
勉強になりました。
ありがとうございます。

お礼日時:2005/04/13 13:20

方法が幾つかあるのですが,もう少し情報を下さい。



1.シェル実行の際にパスワードを入力する必要があるか?
(パスワードを引数として入れるかどうか)
#セキュリティ上芳しくない

2.別途回答がありましたが,sudoコマンドが使える環境であるか?

3.実行したいシェルスクリプトは一般ユーザ権限かroot権限か?

以上教えて頂ければと思います。

この回答への補足

すみません、質問にお答えするのが遅くなりました。

1.シェル実行時にはパラメータは渡しますが、パスワードは渡しません。

2.sudoはスクリプトを実行したい環境では使われていないようなので、できれば避けたいといった感じです。

3.実行したいスクリプトは一般ユーザなのですが、
途中、root権限で実行させたいスクリプトがあります。

こんな回答で解りますでしょうか?

補足日時:2005/04/11 11:06
    • good
    • 0

OSが何かわからないので完全な回答はできませんが、


「sudo」というコマンドを調べてみてください。

# man sudo

一般的な説明は↓こちらにも。

参考URL:http://www.atmarkit.co.jp/fsecurity/rensai/unix_ …
    • good
    • 0
この回答へのお礼

お礼が遅くなりました。
回答どうもありがとうございました。

お礼日時:2005/04/13 13:21

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