【特集】
Mac OS X Leopardテクノロジーレポート集となる
「【レポート】秘められた"真の革新"を暴く - the inner universe of Leopard」
「【レポート】the inner universe of Leopard - 「rcの引退とlaunchdの強化」」
「【特集】Mac OS X独自のディレクトリサービスOpen DirectoryとdsLocal(前編) - the inner universe of Leopard」
もあわせてお楽しみください。
まず最初に注意点。
DirectoryService APIを使ったプログラミングは行うべきではない。CocoaやCarbonにはもう少しマシで使い物になるAPIがある。UNIX側のAPIを見てもPAMなどのまだマシなAPIはある。選択可能な回避策があるならば、それが何であれそちらを採用することを"強く強く"推奨する。繰り返すが、DirectoryService APIを使うべきではない。
この警告を無視してでも使いたい、Mac OS Xの暗部に触れたい、見返りの全くない冒険をしたいというユーザは、以下を参考にしてほしい。なお、この件についての問い合わせは遠慮していただけるとありがたい。
さて、DirectoryService APIを扱うにあたっては「node」「record」「attribute」の3つの概念があることに注意されたい(図1)。
nodeは各ディレクトリサービスのサーバを意味するツリーのトップに当たるもので、サービスの形式とサーバの位置の2要素で作られるパスとなる。例えば/Local/DefaultはdsLocalというディレクトリサービス(/Local)の1つで、そのMac自身のツリーを指す。/LDAPv3/192.168.0.1ならLDAPv3でアクセスされるディレクトリサービスで、IPアドレスが192.168.0.1だ。
recordはディレクトリに格納される一塊のデータで、例えばユーザとかグループ、ホスト1つに相当する。recordは通常そのrecordの形式ごとに分類され、別のパスが用意される。例えば、/Local/Default/Users/meというrecordが存在した場合、これは/Local/Defaultというnodeに存在する、ユーザという形式のrecordで、名称がmeというものを指す。
recordはその種別ごとに階層構造を構築し、アクセスされる。この階層はrecordTypeとかrecordの形式と呼ばれることがある。
こうした階層構造やレコードの格納方式については、実際のディレクトリサービスごとに異なるが、そうした違いは、「【特集】Mac OS X独自のディレクトリサービスOpen DirectoryとdsLocal(前編) - the inner universe of Leopard」のdsLocalのdsmappingのようなマッピング情報を用いて、そのディレクトリサービスにアクセスするプラグインの中で吸収し、DirectoryServiceでは共通の名称を用意し、実際にディレクトリサービスへアクセスするプラグインが共通名称を個別の名称に変換するようになっている。このユーザという形式の場合、DirectoryServiceでは「kDSStdRecordTypeUsers」という定義になる。
attributeはそれぞれのrecordの持つ属性である。例えばユーザというrecordならば、そのユーザのユーザ名やUUID、UID、GID、シェルなどといった情報がattributeとして格納されている。attributeはattributeそのものの名称と、1つないし複数の値によって構成されている。
一般的なDirectoryServiceの手順としては、
といった手順になる。重要な注意点としては、3の認証が挙げられる。このタイミング、すなわちnodeに接続後recordを取得する前に認証を行わないと、recordの読み取りは可能だがrecordやattributeの作成や編集といった書き込み操作ができなくなってしまう。また、この認証操作そのものがかなり難物である。これについては後ほど実際のコードを交えて説明する。
バッファロー、1.5TB容量のFireWire 800/eSATA/USB 2.0対応外付HDD - 価格42,300円
【コラム】今週の注目オンラインソフト for Mac OS X 第19回 Mac OS XをFONのアクセスポイントに変える「FON Macspot」
| レノボ・ジャパン、ウェブ広告モデルを一般公募 - 新生活キャンペーンの一環で [21:21 2/10] |
| 【レポート】スマートフォンを狙ったワンクリック詐欺やオンラインバンキングを狙うゼットボット - トレンドマイクロマンスリーレポート [20:43 2/10] |
| 【レポート】レノボ、大和研究所の開発陣らによる「ThinkPad X1 Hybrid」の技術解説 [20:41 2/10] |
| デル、「冬モデルファイナルセール」最終週 - 各種アップグレードが無料 [20:13 2/10] |
| Appleが3月初旬にスペシャルイベント開催の噂 - iPad 3の発表か [18:34 2/10] |
|
【女性編】バレンタインチョコをあげたい芸能人ランキング [15:00 2/11] ライフ |
|
【男性編】バレンタインチョコをもらいたい芸能人ランキング [15:00 2/11] ライフ |
|
倉薗紀彦、田舎での友情物語「彗星★少年団」発売サイン会 [14:46 2/11] ホビー |
|
[成宮寛貴]ギザギザ頭 のかつらは「やばかった」 映画「逆転裁判」公開 [14:30 2/11] エンタメ |
|
「オレのチキンを食べたのは誰だ!」ナイフを持った男が暴れる [14:06 2/11] キャリア |