INDEX(Topページ) | News & Topics | Glossary | Column List | GuestBook | Link & Profile

第18回 ディスクマネジメントツール「Disk Utility(ディスクユーティリティ)」〜「First Aid」における「Repair Privileges Utility(アクセス権の検証、修復)」〜

Mac OS Xにおけるディスク管理全般を一元的に統括している純正ユーティリティアプリケーション「Disk Utility(ディスクユーティリティ、/Aplication/Utilities/Disk Utility.app)」。Mac OS X独自の「diskutil」コマンドの各種オプションをGUIの環境にて利用可能とした同ツールの諸機能を今回より数回に渡って紹介してみたいと思います。初回に相当する今回は、メンテナンスツール「First Aid」においてアクセス権(アクセス許可)の検証、及び修復を担う「Repair Privileges Utility」です。


●Disk UtilityにおけるMac OS X標準メンテナンスツール「First Aid」

Classic Mac OS時代には「Drive Setup(ドライブ設定)」「Disk First Aid」「Disk Copy」等、複数のツールに分散されていたMac OSにおける各種ディスク管理ソリョーションですが、Mac OS X移行時においてDrive Setup、Disk First Aidの諸機能プラフアルファが統合され、Disk Utilityと称される新たな統合ユーティリティが提供されるに至ります。その後「Mac OS X 10.3 Panther」における同ユーティリティではDisk Copyの統合が実現された他、「asr(Apple Software Restore)」(注1)をベースとしたボリューム単位での復元(リストア)機能等もサポート。Classic Mac OS時代に分散されていた各種ソリューションが一元的に統括された事により、一層の合理化が実現されるに至っています。

そんなDisk Utilityの中でも、比較的利用機会が多いのではないかと察せられるのが今回テーマとしているFirst Aidではないかと思われますが、Classic Mac OS時代におけるDisk First Aidの後継的な位置付けにて提供されている同ツールでは、

等が主要な機能として提供されています(何れも要管理者権限)


●First AidにおけるRepair Privileges Utility

Disk UtilityにおけるFirst Aidの機能の一つ、Repair Privileges Utility(「Mac OS X 10.1.5」以前のシステムに対しては、単体のユーティリティアプリケーションとして配布)は、その呼称が示す通り、ファイルやフォルダ等といったボリューム上の各種リソースに対するアクセス権に関する問題の検証、及び修復等を担っており「Mac OS Xは通常使用時においてシステム関連リソースのアクセス権を意図的に変更する必要はない」との前提の下、同リソースにおけるアクセス権をデフォルト値にリセットするための機能を提供しています。

そして同ユーティリティは、Mac OS Xの稼動中におけるユーザ任意のタイミングでの実行が可能となっており(起動ボリュームに対しても実行可能)、Mac OS X、及び特定のアプリケーションが同一条件下で一定の不具合を示した際、或いは管理者権限でログインしているにも関わらず特定のアプリケーションのインストールが行えない場合等、多様な不具合発生時に実行するメンテナンス手法のファーストチョイスとして認知されるにも至っています。

主要なプロセスとしては、Mac OS Xのインストール時、及び後の「Software Update」実行時等、Apple純正「Installer(インストーラ、/Aplication/Utilities/Installer.app)」経由にてインストールされたツールの多くは拡張子「.pkg」のパッケージファイル(Bandle形式)からインストールされる事となり、何れかの項目のインストールが行われた際には「/Library/Receipts/」にパッケージのレシートファイルが格納され、同パッケージ中「contents」ディレクトリ下に「Bill of Materials」と称される「Archive.bom」(部品表)が保存される事となります(仮に「BSD.pkg」の場合は「/library/receipts/BSD.pkg/contents/Archive.bom」)。

そして、前述のArchive.bomの各々には当該パッケージによってインストールされたファイルのリスト、及び同ファイル毎に設定された適切なアクセス権等が記述されているため、削除(または移動)等に起因して「/Library/Receipts/」に該当レシートファイルが存在しない場合には、同パッケージからインストールされたファイルに対するアクセス権の検証、及び修復が不可能となります(これらのファイルの削除、及び移動はAppleによる公式見解においても行わないよう、呼び掛けられています)。中でもMac OS Xのインストール時に生成される「BaseSystem.pkg」は最重要ファイルの一つと位置付けられており、同ファイルが「/Library/Receipts/」に存在しない場合、アクセス権の検証、修復プロセスは「エラー:有効なパッケージがありません」とのステータスメッセージと共に警告ダイアログを表示した状態で停止される事となります。
BaseSystem.pkgが「/Library/Receipts/」に存在しない場合に表示されるステータスメッセージ
↑BaseSystem.pkgが「/Library/Receipts/」に存在しない場合に表示されるステータスメッセージ(クリックで拡大します)

実際にディスクのアクセス権の検証、及び修復が行われた際における、Repair Privileges Utilityの実行プロセスは以下の通りとなります。

  1. 各レシートファイル中に格納されているArchive.bomを参照
  2. 同ファイル中に記述されているリストと、各ファイルに設定されている実際のアクセス権を比較
  3. アクセス権に相違が確認された場合には、Repair Privileges Utilityが相違内容を報告
  4. ユーザの任意によって修復が指示された際には、Archive.bomのリストに従い適切なアクセス権に修正

この際、通常使用時においてファイルの機能に影響を及ぼす事なくアクセス権の変更が可能なファイルに関しては、意図的に検証プロセスが回避されるような仕組みとなっています。

尚、「VISE X for Macintosh」等のようなApple純正Installer以外のインストーラを介してインストールされたアプリケーション、或いは「Firefox」等のようにディスクイメージやネットワークボリューム等の別ボリュームからパッケージファイルをコピーする事によってインストールされたアプリケーション(インストーラパッケージの一部としてインストールされていないアプリケーション)は、インストール時にレシートファイルが作成されないため、Repair Privileges Utilityによるアクセス権の確認を行う事ができません。しかしながら、これらの中にはレシートファイルの作成を意図的に回避するよう設計されているアプリケーションも含まれていますので、正常な挙動と判断して差し支えないでしょう。


●アクセス権の検証、及び修復プロセスにおける、アクセス権「33261」を報告するメッセージ

以下は、Repair Privileges Utilityがアクセス権の検証、及び修復時に報告する種々のメッセージ中で、無視して構わないとされているステータスメッセージの一例です。例中に記されているアクセス権の省略表記は、各々以下の権限を示しています。

「permissions are 33261(アクセス権は 33261)」が含まれているメッセージ(Mac OS X 10.2.2 or later)

Mac OS X 10.2.2〜10.2.8

ファイルまたはディレクトリ ./System/Library/Filesystems/hfs.fs/hfs.util は特殊なアクセス権が使われています。
新しいアクセス権は 33261 です。

Mac OS X 10.3.3〜10.3.9、10.4 or later

ファイルまたはディレクトリ ./System/Library/Filesystems/cd9660.fs/cd9660.util では特殊なアクセス権が使われています。
新しいアクセス権は 33261 です。

毎月の定期的なメンテナンスタスク(MonthlyScript)の実行後に表示される以下のメッセージ

./private/var/log/install.log」上のアクセス権が一致しません。本来 -rw-r--r--であるはずですが、実際には -rw-r-----になっています。./private/var/log/install.log 上のオーナーとグループが修正されました。./private/var/log/install.log 上のアクセス権が修正されました。
./private/var/log/wtmp 上のアクセス権が一致しません。本来 -rw-r--r-- であるはずですが、実際には -rw-r----- になっています。./private/var/log/wtmp 上のオーナーとグループが修正されました。./private/var/log/wtmp 上のアクセス権が修正されました。

その他にも「〜に対して、特殊なアクセス権が使われています」といった形式のメッセージはアクセス権チェック毎に表示される事とため、無視しても構わないとされています。特に大容量ボリュームに対するメンテナンス時等に不要なメッセージを上手くフィルタリングする事ができれば、効率的な作業の実現にも繋がっていくのではないかと思われますので、(必須事項ではありませんが)参考程度にでも頭に留めておかれては如何でしょうか。


●本文訳注

(注1)asr(Apple Software Restore)

Disk UtilityによるGUIレベルでのサポートはMac OS X 10.3 Pantherから行われているが、コマンドライン自体はMac OS X 10.2 Jaguarより導入されている。asrを使用する事により、カスタムイメージからのソフトウェアのリストア、及び任意のボリューム全体の「クローン」作成等が可能となる。尚、同ユーティリティは「HFS Plus(Mac OS拡張フォーマット)」が適用されたボリュームでのみ動作する。


御意見、御感想はこちらまで
Topページへ


Created Date : 07/02/20
Modified Date :