[PHP-users 14563]Re: NISの認証について

Sugimura Masayuki sugimura @ ksp.nis.nec.co.jp
2003年 4月 11日 (金) 11:50:30 JST


杉村です。

> PHP初心者です。
> 早速質問ですが、とあるサーバにNISが入っています。
> そこに、別のサーバにあるプログラム(PHP)で、NISに認証をかけたい
> と思っているのですが、方法がまったくわかりません。。
> 調べた結果、yp_match関数を使えばできそう、と思っているのですが
> どのようにすればよいか困っています。
> どなたかご存知のかたがいらっしゃれば、お教え願えませんでしょうか?
> よろしくお願いします。

入力したパスワードと、NIS に登録されているパスワードを比較して
認証したいということですよね?

特に難しいところはないと思いますが、むかし試しに作ってみたものを
書いておきます。
使われている関数についてはマニュアルで調べてみて下さい。

define('DOMAIN', 'hoge');
define('MAP_FILE', 'passwd.byname');

function nis_auth($username, $password) {

  if($entry = @yp_match(DOMAIN, MAP_FILE, $username)){
    list($user, $pass, $others) = explode(":", $entry);

    if(!strcmp(crypt($password, $pass), $pass)){
      return TRUE;
    }
  }

  return FALSE;

}
 
# PHP のコンパイル時に --enable-yp をつけるのをお忘れなく。
--
Sugimura Masayuki	sugimura @ ksp.nis.nec.co.jp


PHP-users メーリングリストの案内