先日の記事では、インストール時に設定されるアカウントと、rootアカウントなどとの関連について解説を行った。つまり、Mac OS Xは「アカウント」を通じてい利用しなければならないというのが基本だが、通常の利用では、インストール時に指定したアカウントとパスワードだけを知っていれば良く、また、それらを自動的に入力することも可能なので、あまりアカウントについては意識しなくても使えるように工夫されているというこなのである。
しかしながら、Mac OS Xをサーバに使うとなると話は別だ。Mac OSのファイル共有機能でもそうだったように、アカウントの管理ということが必要であり、Mac OS X Public Betaでもその機能は用意されている。Mac OS X Public Betaでは、AppleShare IPのファイルサーバ機能、FTPサーバ機能、telnetサーバ機能が手軽に使える。これらは、Mac OS Xに登録した統一的なアカウント情報を共有することになる。(なお、Webサーバもあるが、これは基本的にはアカウント管理は必要ない。)これらのサーバ機能は順次紹介するとして、まずは、アカウントを追加する機能について説明しておこう。
Allow user to administer this machineというチェックボックスがあり、アシスタントで設定したアカウントにはこのチェックボックスが入っている。このチェックボックスをオンにすると、Multiple UsersのウインドウのKindの列に「Admin」という記述が入り、このアカウントには管理者の権限があると設定されるわけだ。このアカウントだと、たとえばSystem Preferencesの中にあるシステム設定の変更ができるようになるというわけだ。つまり、システム変更の権限であるとも言える。
ここでまたUNIX系な話に振ってみたい。LinuxやFreeBSDの一般的な設定だと、たとえば、adduserコマンドでユーザを追加できるとか、/etc/passwdファイルを確認すれば登録されているアカウントが分かるなどの話ができる。ここで、Mac OS Xはアカウント情報をどこに残すのかという問題が出てくる。実は、NetInfoというディレクトリサービスのエントリとして、アカウント情報は記録されている。NetInfoはシステムの設定などに関する一種のデータベースと考えればよいが、汎用的に利用でき、情報を階層的に記録することができる。NetInfoの機能はMac OS Xに含まれている。1つのマシンの中で情報の階層ツリーを構成できるだけでなく、他のマシンと連係して、大きなツリーの中に自分のツリーを割り込ませるようなこともでき、ある種の情報共有も可能だというわけだ。こうした汎用的なディレクトリサービスを使ってアカウントを管理している。だから、/etcディレクトリを探してもあまり意味はないということだ。 一方、グループという概念があり、それによって、ユーザの集合を定義できる。つまり、アクセス権の設定などを一群のユーザに対して行えるなど管理の手間を軽減させる仕組みがグループの1つの側面だと言えるだろう。ところで、Mac OS Xでもグループはあり、NetInfoで管理されている。しかしながら、NetInfoを操作する以外にグループの設定はMac OS Xではできないのである。ネットワークを知る人にとっては不可解なことかもしれないが、ファイル共有の機能を見る限りはそれも意味があるとも言えなくもない。Multiple UsersでAdminの設定が付けられているアカウントは、wheelというグループに属する。このグループは、UNIXでは「rootになることができるアカウント」として有名である。wheelに属するユーザでログインして、suコマンドでルートになるというのが基本操作なのである。つまり、管理権限とは、wheelグループの所属というそれだけのことだったのである。
なお、Mac OS Xが本格的にサーバ利用される段階で、Multiple Usersに代わる、User Managerか何か名前は分からないけど、グループの定義や登録なども含めた本格的なアカウント管理アプリケーションが付属されるようになるものと予想できる。Multiple Usersはクライアント用途のMac OS X向けのアカウント管理アプリであり、その意味では機能は限定されている。しかしながら、そうしたアプリケーションで1つ1つのアカウントは登録できるとしても、たとえば大規模サーバで1000人まとめて登録したいという場合もあるだろう。今後出ると思われる設定アプリケーションでカンマ区切りのデータで一括登録ということができるかどうかは微妙だ。一方、Linuxなどにあるadduserコマンドのようなものは、Mac OS Xの場合NetInfo絡みのこともあって単一のコマンドでは供給されていないようだ。だが、DarwinのFAQなどをもとに、「Mac OS X版のadduserコマンド」が作られる可能性は高いだろう。システム管理者はそうした情報にも気を配っておく必要があるとも言える。 NetInfoの登録内容については、ApplicationsフォルダのUtilitiesフォルダにあるNetInfoManagerというアプリケーションを御利用いただきたい。そこで、グループとかユーザアカウントの情報が参照できるが、NetInfoの動作やシステムの動作に精通していないのであれば、手で書き直すのはお勧めできない。だけど、みるだけなら支障はないだろう。