CentOS 5.2 にLDAP経由でログイン

LDAPデータをPOSIXユーザーとして使う、つまり、LDAPのデータでLinuxがログインできるようにしてみよう。これによってNISサーバーのようにユーザー管理が一元化できるし、NFSで共有したときのユーザーIDに悩むこともなくなる。このエントリーではすでにあるOpenLDAPサーバーを使用して CentOS 5.2 をLDAPクライアントにする。まだLDAPサーバーがない場合は OpenLDAPサーバー構築 を参照してほしい。

まずはユーザー情報をLDAPサーバーに登録しよう。LDIFの書き方はいろいろあるが、シンプルにやるなら以下のような感じだ。一点注意するとしたら、posixAccountは補助スキーマなのでaccountやinetOrgPersonなどが必要になることだ。userPasswordは事前にslappasswdで作成しておこう。

[text title=”/var/lib/ldap/ldif/nis.ldif”]dn: cn=gadget,ou=Groups,dc=rewse,dc=jp
objectClass: posixGroup
cn: gadget
gidNumber: 1000

dn: cn=svn,ou=Groups,dc=rewse,dc=jp
objectClass: posixGroup
cn: svn
gidNumber: 5000
memberUid: gadget

dn: uid=gadget,ou=People,dc=rewse,dc=jp
objectClass: account
objectClass: posixAccount
uid: gadget
cn: gadget
userPassword: {SSHA}HqRcWT1SlBrX1aCPhmM9/URequ50vbsD
uidNumber: 1000
gidNumber: 1000
gecos: Firstname Lastname
homeDirectory: /home/gadget
loginShell: /bin/bash[/text]

できたLDIFをLDAPサーバーに読み込ませればサーバー側は完了だ。

それではクライアント側(ログインするマシン側)の設定を行う。NSS用のLDAPモジュール、設定ツール、それと毎回LDAPサーバーにアクセスせずにローカルでキャッシュするためのネーム・サービス・キャッシング・デーモンをインストールしよう。

authconfigを使用してLDAPデータでログインできるように設定ファイルを書き換える。また、authconfigでは設定できないが、デフォルトではもしLDAPサーバーに接続できなかった場合に延々とリトライしてしまうで、すぐにエラーになるように変更した。

これでLDAPサーバーの情報を参照できるようになっているはずなので、/etc/passwd にないユーザー情報が見えることを確認してみよう。

このままでもログイン可能だけど、たとえばlsしたときの所有者や所有グループの名前解決のたびにLDAPサーバーにアクセスしてしまうので、キャッシュしてくれるnscdを起動しておく。

また、ホーム・ディレクトリがないときは自動で作成するように、PAMの設定に以下を追加する。

One thought on “CentOS 5.2 にLDAP経由でログイン”

コメントを残す