タイトル【Mac OS 9シリーズ】マルチユーザ機能を使う(1)カテゴリーMac OS 9, Mac OS 9
作成日1999/11/5 17:19:28作成者新居雅行
Mac OS 9に新しく加わったマルチユーザ機能は何回かにわけて説明することにしよう。マルチユーザ機能により、Mac OSに「ログイン」という作業を起動後に必要になる。これによって、利用者ごとに異なる環境にそのつどセットアップされる。1台を何人かで使い回す場合には有効な方法となる。1人1人のデスクトップ設定やあるいはアップルメニューの設定などが別々に記録され、自分だけしか参照できない「書類」フォルダが使えるわけだ。複数のユーザで1台のマックを使うようなところでは重宝するかもしれない。
その場合、管理者が考えることは、マルチユーザ環境がこれまでの普通のMac OS環境とどこが違うのかという点だろう。利用環境をセットアップする上で知っておきたいこと、また、デベロッパーとして知っておきたいことを中心にまとめてみよう。

まず、マルチユーザ機能は既定の状態では機能していない。この機能を利用するには「マルチユーザ」コントロールパネルを呼び出して、機能を「入」にしなければならない。図では4人のアカウントがすでに登録しているが、最初は「Mac OS設定アシスタント」などで設定した所有者(「ファイル共有」コントロールパネルでの設定)だけが登録されているはずだ。
figs/macos9/07/file0001.gif

ユーザーのランクは「所有者」「通常利用者」「制限付き利用者」「パネル利用者」のいずれかである。所有者は1人だけだが、それ以外の利用者はたくさん設定することは可能だ。利用者は「新規利用者」ボタンをクリックして作成する。また、既存の利用者の設定変更は、選択して「開く」ボタンをクリックすればいい。次のようなダイアログボックスで、個々の利用者の設定ができるようになっている。「アカウントの種類」で利用者の種類を設定できる。このダイアログボックスの設定については、別の機会で説明しよう。
figs/macos9/07/file0002.gif

さて、マルチユーザ機能をアクティブにすると、Finderの「特別」メニューには「ログアウト」というメニュー項目が追加される。ショートカットは終了でおなじみのCommand+Qだ。選択すると、ほんとうにログアウトしていいのかをたずねてくる。OKボタンをクリックしてもいいが、表示されているように90秒後に自動的にログアウトされる。ログアウト時には、起動しているアプリケーションは全て終了されるが、バックグランドアプリケーションはそのままの状態になっているようだ。
figs/macos9/07/file0008.gif
figs/macos9/07/file0004.gif

起動後、あるいはログアウト後にはこのようなダイアログボックスが既定の状態では表示される。ここで名前を選択して、「ログイン」ボタンをクリックし、ダイアログボックスで指定したパスワードを入力する。音声認識パスワードを設定していれば、この後にパスワードのフレーズを声で出すということになる。
figs/macos9/07/file0005.gif

所有者でログインしているときに、ボリュームの中身を調べてみよう。まず、ボリュームのルートに「利用者」というフォルダができている。その中に、所有者以外のアカウント名のフォルダと、「共有書類」フォルダができている。この「利用者」フォルダは、複数のパーティションに別れたハードディスクなど、複数のボリュームがある場合には、すべてのボリュームに作られ、どの「利用者」フォルダにも、アカウント名のフォルダが作られる。
figs/macos9/07/file0006.gif

ここで、制限付き利用者でログインしてみた。すると、ハードディスクのルートは書き込み禁止になるなど、ハードディスク内のほとんどは書き込み禁止となっている。「利用者」フォルダは書き込み禁止になると同時に、別のアカウントのフォルダ自体が見えないのが既定の状態なのである。つまり、自分のアカウント名のフォルダと、「共有書類」フォルダしか、書き込み可能な状態になっていない。従って、間違えてシステムやアプリケーションのファイルを消したり、あるいは他人のフォルダの中身を見たりと言うことはできないということになる。
ここで自分のアカウント名のフォルダを開いてみると、本来システムフォルダにある「よく使う項目」「アップルメニュー」「インターネット検索サイト」「システム終了項目」「デスクトップピクチャ」「プリントモニタ書類」「ランチャー項目」「初期設定」「起動項目」の各フォルダがあり、システムフォルダ内にあるときと同じアイコンになっている。このとき、たとえば「システムフォルダ」内の「アップルメニュー」フォルダは普通のアイコンのデザインになっているのを確認してほしい。つまり、利用者でログインすると、システムフォルダ外にある、「アップルメニュー」などのフォルダをシステムは認識するようになるのである。
figs/macos9/07/file0003.gif

「書類」フォルダは文字通り、自分で作った書類をおさめるフォルダになるだろう。このエイリアスが自動的にデスクトップに作られている。「書類」の中には「共有書類」フォルダへのエイリアスが作られている。つまり、みんなで使う書類は「共有書類」に置くということになるだろう。なお、所有者の「書類」フォルダは作った後に任意に移動してもいいが、通常は起動ディスクのルートに作られる。
アカウント名のフォルダには、他にエイリアスの「ヘルプ」や、「Desktop Folder」がある。デスクトップは書き込み可能なので、自分でエイリアスを作ったりファイルを保存しておくことができるということだ。
たとえば、利用者でログインをしているときに、「初期設定」フォルダを見つけるような次のようなスクリプトプログラムを実行したとする。最後のコメントが得られた結果だ。利用者はruiであった。

tell application "Finder"
get preferences folder
end tell
--folder "初期設定" of folder "rui" of folder "利用者" of startup disk of application "Finder"

これを見て明らかなように、「システムフォルダ」外にある、「利用者」フォルダ内の「rui」フォルダの「初期設定」フォルダを初期設定フォルダと認識している。最近のプログラムではほとんどないとは思われるが、パス名を文字列処理して作成するようなプログラムの場合、マルチユーザ環境ではフォルダを誤認する可能性は高い。マルチユーザ対応であるためには、システムフォルダへのパスの取得において、FindFolderのようなAPIを使うなどシステムにきちんと問い合わせる必要がある。その上で、「システムフォルダ内にある」というような仮定のもとで動いているような箇所がないかをチェックする必要があるだろう。こうした配慮が基本的に必要になる。
関連リンク