- PR -

複数パスワードファイルのシェルスクリプトでの変更

投稿者投稿内容
森蔵
大ベテラン
会議室デビュー日: 2001/08/10
投稿数: 158
お住まい・勤務地: 大阪
投稿日時: 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

しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-08-09 22:09
sudo をつかう。
後は調べて下さい。
森蔵
大ベテラン
会議室デビュー日: 2001/08/10
投稿数: 158
お住まい・勤務地: 大阪
投稿日時: 2002-08-12 15:52
「しょむさん」ありがとうございます。

sudoですか...。
調べて見ます。アドバイスありがとうございます。
setuidとかもあるんですけど、これはどういう場面でつかうんでしょう?
ふじい
大ベテラン
会議室デビュー日: 2002/05/07
投稿数: 123
お住まい・勤務地: 東京
投稿日時: 2002-08-13 10:59
こんにちは、藤井です。

setuidはあるプロセスにルート権限を与えたいときに使いますが、sudoはあるコマンドだけとか権限を分離することができますよね。

クラックされたときを考えると、すべての権限が渡るのと、一部のコマンドだけの権限が渡るのでは、どちらがより安全かという話です。

最近はなるべくsetuidを使わないような方向にきてますね。

いずれにせよ、調べればすぐわかることなので、調べてみてくださいね。
森蔵
大ベテラン
会議室デビュー日: 2001/08/10
投稿数: 158
お住まい・勤務地: 大阪
投稿日時: 2002-08-13 11:25
こんにちは、森蔵です。
アドバイスありがとうございます。

引用:

ふじいさんの書き込み (2002-08-13 10:59) より:

setuidはあるプロセスにルート権限を与えたいときに使いますが、sudoはあるコマンドだけとか権限を分離することができますよね。

クラックされたときを考えると、すべての権限が渡るのと、一部のコマンドだけの権限が渡るのでは、どちらがより安全かという話です。



早速"sudo"と"setuid"を調べて、次の解釈をえました。
--
sudo:コマンドを権限がないユーザに対して実行させるための物
setuid:コマンド自体がオーナの権限で実行させる物

そこで、藤井さんの書き込みを見たんですが、「プロセスにルート権限を与えたい」
とはどう言う事なんでしょうか?setuidがシェルスクリプトでは使用出来ない所
の答えがあるようなきがするので、お聞きしたいです。

ふじい
大ベテラン
会議室デビュー日: 2002/05/07
投稿数: 123
お住まい・勤務地: 東京
投稿日時: 2002-08-13 13:18
こんにちは、藤井です。

引用:

森蔵さんの書き込み (2002-08-13 11:25) より:

早速"sudo"と"setuid"を調べて、次の解釈をえました。
--
sudo:コマンドを権限がないユーザに対して実行させるための物
setuid:コマンド自体がオーナの権限で実行させる物

そこで、藤井さんの書き込みを見たんですが、「プロセスにルート権限を与えたい」
とはどう言う事なんでしょうか?setuidがシェルスクリプトでは使用出来ない所
の答えがあるようなきがするので、お聞きしたいです。



すみません、今回に限っていうとルートの実行権を、ということでした。

setuidはあるオーナーの実行権限を与えるという意味で、上記の解釈で正しいです。その結果実行されたプロセスがそのオーナーのものになります。

かなりよくない説明ですみませんでした。混乱させたようです。

あとシェルスクリプトで実行できないという意味がよくわかりません。シェルスクリプトを作り、そのスクリプトにsetuidで望みのオーナーを割り当てればいいと思いますが。

sudoは実際に使って見てもらったほうがよくわかると思います。簡単にいうと権限の管理とそのログがとれます。
森蔵
大ベテラン
会議室デビュー日: 2001/08/10
投稿数: 158
お住まい・勤務地: 大阪
投稿日時: 2002-08-13 14:28
こんにちは。森蔵です。

説明ありがとうございます。

引用:


あとシェルスクリプトで実行できないという意味がよくわかりません。シェルスクリプトを作り、そのスクリプトにsetuidで望みのオーナーを割り当てればいいと思いますが。




この件なんですが、sudoや、setuidを調べているときにスクリプトに対しては
setuidは出来ないと言う記述があったのです。実際に試してみてないので、
試して見る事にします。
ふじい
大ベテラン
会議室デビュー日: 2002/05/07
投稿数: 123
お住まい・勤務地: 東京
投稿日時: 2002-08-14 11:49
こんにちは、藤井です。

引用:

森蔵さんの書き込み (2002-08-13 14:28) より:

この件なんですが、sudoや、setuidを調べているときにスクリプトに対しては
setuidは出来ないと言う記述があったのです。実際に試してみてないので、
試して見る事にします。



すみません。Linuxではrootにsetuidされたシェルスクリプトは無視されますね。

こちらこそ、Linuxで検証しなくて発言してしまい、申し訳有りませんでした。

ちなみに、検証していたのはFreeBSD(正確にはMac OS X)でしたので、

#!/bin/csh -b
......

とやるとできてしまいます。

ですのでLinuxにおいては、できないと考えていただいて結構です。

スキルアップ/キャリアアップ(JOB@IT)