次のページ 前のページ 目次へ

6. NIS と PAM で Shadow パスワードを使う

6.1 Shadow パスワードと NIS

NIS に shadow パスワードを流通させるのは良い考えではありません。 shadow システムのメリットであるセキュリティが失われてしまうからです。 それにこれがサポートされている Linux C ライブラリは少数に過ぎません。 NIS 上に shadow を流さないようにするには、ローカルシステムの ユーザだけを /etc/shadow に登録することです。 NIS に流す ユーザエントリを shadow データベースから削除し、それらのパスワードは passwd に書いて下さい。こうすれば root ログインには shadow を、 一般の NIS ユーザには passwd を用いることができるようになります。 この方法なら、すべての NIS クライアントでうまく動作します。

Linux

NIS で shadow パスワードを用いることができる唯一の Linux libc は GNU C Library 2.x です。 Linux libc5 はこれをサポートしていません。 Linux libc5 を NYS と一緒にコンパイルした場合は、多少のコードが 含まれることにはなります。でもこのコードは状況によってはひどく 壊れてしまい、 shadow エントリが全て正しい場合でも動作しないことが あります。

Solaris

Solaris は NIS 上での shadow パスワードをサポートしていません。

PAM

PAM は NIS 上での shadow パスワードをサポートしません。 特に pam_pwdb/libpwdb がだめなんです。これは RedHat 5.x ユーザに とって大きな問題です。 glibc と PAM を使っている場合は、 /etc/pam.d/* のエントリを変更する必要があります。 pam_unix_* モジュールにある pam_pwdb のルールを置き換えて下さい。 しかし pam_unix_auth.so モジュールにはバグがあるので、 これは必ず動作するとは限りません。

/etc/pam.d/login の例としては以下のようになるでしょう。

#%PAM-1.0
auth       required     /lib/security/pam_securetty.so
auth       required     /lib/security/pam_unix_auth.so
auth       required     /lib/security/pam_nologin.so
account    required     /lib/security/pam_unix_acct.so
password   required     /lib/security/pam_unix_passwd.so
session    required     /lib/security/pam_unix_session.so

auth には pam_unix_auth.so モジュールを用い、account には pam_unix_acct.so を、 password には pam_unix_passwd.so を、 session には pam_unix_session.so を用います。


次のページ 前のページ 目次へ