LeopardをPowerMac G5 2.0GHz DualとMacBook Proの2台で運用しているのですが、PowerPCでもまだまだイケますね。特にストレスを感じることもなく、サクサク動いています。Time Machineに使用している外付けHDDがUSB 2.0接続なので、うっかり動画でも編集しようものならバックアップに時間がかかることがネックではありますが。

さて、Leopardネタ2回目となる今回は、Open DirectoryとNetInfoについて。いまだNeXTSTEPに強い愛着を感じる筆者にとって、一抹の寂しさを感じさせる事態が発生したが、これも時代の流れでありいわば必然。追憶にふけるヒマなどなし、前向きに取り組んでいこう。

さようなら、NetInfo

LeopardでClassic環境がサポートされなくなったことは前回お伝えしたとおりだが、特に感慨を持たなかった方も多いのではなかろうか。なによりIntelプラットフォームへの移行が大きいが、MoonlightからLimelight、そしてStarlightへと徐々に明るさを失っていったコードネームが象徴するように、ユーザのClassic環境への依存度も徐々に低下していたはず。

一方、LeopardでのNetInfoの廃止は、意外に感じた方も少なくないのではなかろうか。そもそもの認知度がClassic環境より格段に低いことはさておき、NetInfoの廃止は特にアナウンスされてこなかった。それが突然NetInfo Managerが見当たらないは、常駐のデーモンからlookupdがなくなるは、/usr/bin以下の「ni」から始まるコマンド群が消滅するはで、NetInfoの機構全体が跡形もなく消えてしまった。

もっとも、NetInfoのフェードアウト傾向はこれまでハッキリと見えていた。ユーザアカウントの管理にはもっぱらOpen Directoryが利用されるようになり、NetInfoデータベースに保管されるデータは、Tigerの時点で実質的に/etc/passwd/etc/groupに相当する情報程度。NeXTSTEPの時代を通算すると十数年にもおよぶNetInfoのノウハウは失われるが、ディレクトリサービスの業界標準となったOpenLDAPに対応するうえ、機能の拡張が容易なOpen Directory(実はTigerの時代もNetInfoプラグインにより互換性を維持していた)のほうが時代に即している。

Open Directory時代の管理ツール

NetInfoが消えたLeopardでは、Open Directoryがユーザアカウントを管理する。そのGUIツールが「ディレクトリアクセス」改め「ディレクトリユーティリティ」で、/Applications/Utilitiesディレクトリに置かれている。

Macを大量導入した企業のネットワーク管理者でもないかぎり、このユーティリティを使う機会は少ないと思うが、個人(パワー)ユーザには覚えておいたほうがいい機能が1つある。TigerまではNetInfo Managerで処理していた、デフォルトでは無効に設定されている「root」を有効にする機能がそれだ。

rootを有効にする手順そのものは単純で、ディレクトリユーティリティの起動後システム管理者(通常は最初に登録したユーザアカウント)として認証、メニューバーから[編集]→[ルートユーザを有効にする]を選択して、rootのパスワードを登録すればOK。もちろん、rootを有効にすればそのぶんセキュリティが緩くなるので、よく検討したうえで利用してほしい。

rootを有効化するときには、ディレクトリユーティリティを使う

ホームディレクトリを変更するには

rootアカウントの有効化以外に、ユーザのホームディレクトリを変更する作業も、これまでNetInfo Managerに依存していた。NetInfo Managerなき今、どうすればホームディレクトリを変えることができるのか?

方々探しまわったところ、答えは足下に。システム環境設定の「アカウント」ペインを開き管理者認証を済ませたあと、左側にリストされた作業対象のアカウント上で右クリック、現れた[詳細オプション...]を選択すると、ログインシェルやホームディレクトリの値を編集できる画面が現れるのだ。こちらも安易に変更するとログイン不能に陥る可能性があるため、慎重に利用してほしい。

どうしてもホームディレクトリを変更したい場合は、システム環境設定の「アカウント」パネルを使う

アカウントの詳細情報を表示するには

Open Directoryにも、管理用のコマンドがいくつか用意されている。Tigerの頃から存在するが、NetInfoの「ni」から始まるコマンド群が使えなくなった今、最低限の使い方は知っておいたほうがいいかもしれない。

なかでも有用なコマンドが「dscl」。Terminalから引数/オプションなしで起動すると、対話型の内部シェルが起動するので、まずは「help」を実行し、どのような内部コマンドがあるか確認すべし。

手始めに、以下のとおりコマンドを実行してみよう。これで、ローカルホストに存在するユーザアカウントの一覧を得られるはずだ。


> -list /Local/Default/Users

次に、ユーザアカウントの詳細な情報を表示してみよう。利用する内部コマンドは「-read」、引数は「-list」で表示されたアカウント名を指定すればOK。たとえば、ユーザ「steve」は次のコマンドラインを実行すれば表示できる。


> -read /Local/Default/Users/steve