- - PR -
複数パスワードファイルのシェルスクリプトでの変更
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2002-08-09 16:32
お世話になります。u2改め森蔵です。
現在構築中のサーバで、web(Apache),mail(Sendmail)サーバを立てます。 mailサーバでは、SMTP認証を使用する為、「SASL のパスワードデータベース」を 別途作成しなくてはいけないようです。また、ipop3のパスワードはUNIXパスワードを 使用しようと考えています。 この場合、ユーザは別々の二つのパスワード変更を行わなくてはいけなくなります。 いくつもコマンドを発行してもらう事になるため、シェルスクリプトを作成して、 両方のパスワードを一度で変更出来るようにしたいと思います。 rootでキックできるシェルスクリプトは作成したのですが(以下参照) これを一般ユーザでキック出来るようにするうまい方法が思いつきません。 皆さんはどのようにされているのでしょうか? 知恵を拝借できればと思います。 ※抜本的解決方法があれば教えてください。 -- #! /bin/bash if [ $# -ne 2 ] then echo "argument error" exit 1 fi USERNM=$1 PASSWD=$2 echo $USERNM":"$PASSWD | chpasswd echo $PASSWD | saslpasswd -p $USERNM exit 0 | ||||
|
投稿日時: 2002-08-09 22:09
sudo をつかう。
後は調べて下さい。 | ||||
|
投稿日時: 2002-08-12 15:52
「しょむさん」ありがとうございます。
sudoですか...。 調べて見ます。アドバイスありがとうございます。 setuidとかもあるんですけど、これはどういう場面でつかうんでしょう? | ||||
|
投稿日時: 2002-08-13 10:59
こんにちは、藤井です。
setuidはあるプロセスにルート権限を与えたいときに使いますが、sudoはあるコマンドだけとか権限を分離することができますよね。 クラックされたときを考えると、すべての権限が渡るのと、一部のコマンドだけの権限が渡るのでは、どちらがより安全かという話です。 最近はなるべくsetuidを使わないような方向にきてますね。 いずれにせよ、調べればすぐわかることなので、調べてみてくださいね。 | ||||
|
投稿日時: 2002-08-13 11:25
こんにちは、森蔵です。
アドバイスありがとうございます。
早速"sudo"と"setuid"を調べて、次の解釈をえました。 -- sudo:コマンドを権限がないユーザに対して実行させるための物 setuid:コマンド自体がオーナの権限で実行させる物 そこで、藤井さんの書き込みを見たんですが、「プロセスにルート権限を与えたい」 とはどう言う事なんでしょうか?setuidがシェルスクリプトでは使用出来ない所 の答えがあるようなきがするので、お聞きしたいです。 | ||||
|
投稿日時: 2002-08-13 13:18
こんにちは、藤井です。
すみません、今回に限っていうとルートの実行権を、ということでした。 setuidはあるオーナーの実行権限を与えるという意味で、上記の解釈で正しいです。その結果実行されたプロセスがそのオーナーのものになります。 かなりよくない説明ですみませんでした。混乱させたようです。 あとシェルスクリプトで実行できないという意味がよくわかりません。シェルスクリプトを作り、そのスクリプトにsetuidで望みのオーナーを割り当てればいいと思いますが。 sudoは実際に使って見てもらったほうがよくわかると思います。簡単にいうと権限の管理とそのログがとれます。 | ||||
|
投稿日時: 2002-08-13 14:28
こんにちは。森蔵です。
説明ありがとうございます。
この件なんですが、sudoや、setuidを調べているときにスクリプトに対しては setuidは出来ないと言う記述があったのです。実際に試してみてないので、 試して見る事にします。 | ||||
|
投稿日時: 2002-08-14 11:49
こんにちは、藤井です。
すみません。Linuxではrootにsetuidされたシェルスクリプトは無視されますね。 こちらこそ、Linuxで検証しなくて発言してしまい、申し訳有りませんでした。 ちなみに、検証していたのはFreeBSD(正確にはMac OS X)でしたので、 #!/bin/csh -b ...... とやるとできてしまいます。 ですのでLinuxにおいては、できないと考えていただいて結構です。 |