前回までで,SUAのNIS機能による認証統合について,最低限の設定方法を紹介しました。今回は,引き続きエラーを解消するための設定とLinuxサーバからADへのパスワード同期を実現するSUAのパスワード同期機能について説明します。 以下,具体的に設定方法を説明します。
pam_mkhomedirモジュールによるホームディレクトリの自動作成
前回紹介した設定を行うことで,認証の統合は実現できましたが,認証とは関係ない各ユーザのホームディレクトリは別途手作業で作成する必要があります。これではせっかく認証を統合したメリットが半減してしまいます。
そこで今回はpam_mkhomedirというPAMモジュールによるホームディレクトリの自動作成を紹介しましょう。
pam_mkhomedirモジュールはpamパッケージに含まれています。CentOS 5.2の場合,pamパッケージは必ずインストールされますので,パッケージのインストール作業自体は不要です。
CentOS 5.2では,以下のようにauthconfigコマンドにオプションを付けて実行することで,必要なファイルが適切に変更され,モジュールが有効となります。
# authconfig --enablemkhomedir --update
通常の設定を行っている場合は(※1),/etc/pam.d/system-authファイルの末尾に
session required pam_mkhomedir.so
という行が追加されます。
- ※1)
- /etc/pam.d/system-authを手動で生成していたり,特殊な設定を行っていたりした場合は,それに応じた設定を行わないと有効にならない場合があります。
このモジュールには,表1のオプションを設定することが可能です。
表1 pam_mkhomedirモジュールのオプション
| オプション | デフォルト値 | 意味 |
|---|---|---|
| skel | /etc/skel | ドットファイルのテンプレートが存在するディレクトリ |
| umask | 0022 | ホームディレクトリのumask |
「skel=」に続いて作成したホームディレクトリに,コピーするドットファイル群が置かれているディレクトリを指定します。通常はデフォルトのままでよいでしょう。
「umask=」に続いて作成するホームディレクトリのumaskを指定します。作成するホームディレクトリのパーミッションは,この値と0777とのANDで設定されますので,デフォルト値の場合,ホームディレクトリのパーミッションは755になります。たとえばパーミッションを700にしたい場合は,umask=0077としてください。
SUAのパスワード同期機能
前回説明したように,SUAのNISサーバ機能によるパスワードの同期機能は,AD→Linuxの一方通行となります。
SUAではUNIX属性のひとつとしてLinux用のパスワードを保持しています。前回説明した「Windows から NIS(Active Directory)へのパスワード同期」の「有効にする」チェックボックスをチェックすることで,ADのパスワードを変更する際には同時にUNIX属性のパスワードも変更されます。しかし,Linuxサーバ上でLinuxユーザのパスワードを変更した場合,UNIX属性のパスワードは変更されるものの,ADのパスワードを同期して変更させる機能がありません。この場合,ADのパスワードとUNIX属性のパスワードが異なるパスワードになってしまいます。
双方向の同期を実現するには,SUAに付属するパスワード同期機能を構成します。パスワード同期機能はNISサーバ機能と無関係に双方向のパスワード同期を実現させることが可能な機能ですが,今回はNISサーバ機能との連係にあたって必要な,Linux→Windows(AD)のパスワード同期機能に限って,設定方法を説明します。
ただし,Windows Server 2008に付属のパスワード同期機能の場合,マイクロソフト社によってサポートされているプラットフォームは表2に示したもののみです。RHELの最新版である5やHP-UXの最新版であるHP-UX 11i v3がサポートされていない等,サポート対象のプラットフォームについては難があるのが実状です。
表2 パスワード同期機能のサポート対象プラットフォーム
| 対応プラットフォーム | プラットフォーム名 |
|---|---|
| Solaris 10(SPARC版) | sol |
| RHEL4/SUSE Linux Enterprise Server 10 | rhl(※2) |
| HP-UX 11i v1 | hpx |
| AIX 5L 5.2/5.3 | aix |
- ※2)
- ドキュメントではSUSEについてはsusというプラットフォーム名のファイルが別途存在することになっていますが,実際のバイナリには存在しません。
以下,CentOS 5.2を例に設定しますが,正式にサポートされている環境ではありません(※3)。
- ※3)
- UNIX側についてはソースが添付されており,改変も許諾されています。そのため,バイナリが動作しないプラットフォームについても動作させることは不可能ではありませんが,ビルドはかなり困難で,一般の管理者が行うのは難しいでしょう。

