次世代 (と言っても Solaris 10 から BSD 系にも移植されて、既にそこそこ普及しているようだが) ファイル・システム ZFS に慣れるため、少し前から OpenSolaris 2009.06 をチマチマといじっている。ライセンス問題が横たわる Linux でも一応 FUSE 経由で ZFS は使えるものの、やはりパフォーマンスではネイティブ動作にやや劣るし、機能も一部制限されるとのこと。Linux にネイティブ移植される日を待ちながら、本場の ZFS で腕を磨いておくとしよう。
その OpenSolaris は VMware ESXi 上のテスト用仮想マシン (以下 VM) とは言え、我が家ではユーザー・アカウントを OpenLDAP で管理しているので、他の Linux と同様に LDAP クライアントとして設定したい。ところが最近の Linux では比較的簡単になったこの設定も、いろいろと勝手が違う OpenSolaris では少々手こずった。
ああだこうだと彷徨った様子を紹介しても仕方がないので、ズバリ結論を書いてしまうと、このページにある方法で上手く行った。最低限必要な作業は、以下の 3ステップ。
# ldapclient manual \ -a credentialLevel=proxy \ -a authenticationMethod=simple \ -a proxyDN=cn=DNname,dc=example,dc=com \ -a proxyPassword=password \ -a defaultSearchBase=dc=example,dc=com \ -a defaultServerList=192.168.xxx.xxx:389 \ -a serviceSearchDescriptor=passwd:ou=Users,dc=example,dc=com \ -a serviceSearchDescriptor=group:ou=Groups,dc=example,dc=com System successfully configured ← 成功 # vi /etc/pam.conf ← 以下の行をそれぞれのサービス行群に追加 login auth required pam_ldap.so.1 other auth required pam_ldap.so.1 passwd auth required pam_ldap.so.1 # getent passwd ← LDAP 上のアカウントが表示されるか確認
僕は管理用ユーザーと一般ユーザーのホーム・ディレクトリをそれぞれ /home/managers/username、/home/users/username としていて、LDAP 上の一般ユーザーも、多くはホーム・ディレクトリが /home/users/ 以下にあることを想定している。しかし Solaris 系では /home が autofs の管理下にあって具合が悪い (=サブ・ディレクトリやシンボリック・リンクを作成できない)。前述のページでは LDAP 上のユーザー用に autofs の設定を追加しているが、 僕はとりあえず /etc/auto_master の /home 行を無効にし、/home 内をいじれるようにしておいた (※ Solaris 的にはあまり推奨されない方法のはず)。
# vi /etc/auto_master #/home auto_home -nobrowse ← /home をコメント・アウト # svcadm -v restart autofs ← autofs を再起動
さて、Oracle の Sun Microsystems 買収に伴う方針転換等で、Solaris を始め OpenSolaris プロジェクトもゴタゴタしている様子。Oracle が 「Sun 由来のオープンソース関係は廃止」 と言い出さないことを祈りたいが、同社の判断次第で影響を受けるのは、Solaris や ZFS だけではなく、Java を始め VirtualBox、OpenOffice.org、MySQL 等も同じ。これらの技術・製品への依存度は高いので、いきなり打ち切りやサブマリン特許的なことをされてしまうと、けっこうヤバい。「どれか一つだけ助けてやる」 と言われたら、個人的には MySQL に一票か (可能なら別の場所から別人を装ってもう一票)。

OpenSolaris ベースの BeleniX 0.7.1 でも、同じ手順で LDAP 化に成功。