[PHP-users 9573] Re: phpで useradd+passwdする方法

Moriyoshi Koizumi php-users@php.gr.jp
Wed, 28 Aug 2002 10:05:04 +0900


小泉@町田です。

TAKAHASHI Masayoshi <maki@inac.co.jp> wrote:
--snip
>       (参考URL:
>        [PHP-users 8460]
>        http://ns1.php.gr.jp/pipermail/php-users/2002-July/008465.html )

以前書いていたことは、あまりにも不十分でしたので補足します。

1. pop3 の セッションでの認証のためにユーザを追加したい

qpopper を使っているのであれば、configure 時に --with-pam (うろ覚え)
を追加してコンパイルして、あとは、/etc/pam.d/popper (popper の部分は設定に
より変わります) に pam_pgsql や pam_mysql などのモジュールを必要十分条件に
追加すれば、実際に unix ユーザが /etc/passwd に存在しなくてもアカウントと
して識別します。ただしこの場合でも、smtp 側の設定は必要ですので注意してく
ださい。qmail の場合では、alias ディレクトリに、メールボックス名に応じて
メールを別々のファイルに振り分けるphpスクリプトを書くことで目的を達成でき
ると思います。

2. login / sshd / telnetd における認証でも DB を使いたい

getpwnam() や getspnam() などネームサービス関連の関数の挙動を
変えないといけません。glibc では /etc/nsswitch.conf (パスはconfigure 時の
オプションによって変わります) の設定によって PAM 同様、pluggable に 変える
ことができます。

pam-pgsql / nss-pgsql: http://sourceforge.net/projects/sysauth-pgsql/

nss-mysql: http://savannah.gnu.org/projects/nss-mysql/ 
pam-mysql: http://sourceforge.net/projects/pam-mysql/

また間違いがあれば指摘してください。
なにかお役に立てば幸いです。