TL;DR: sudo chown root:wheel /
いつのころからか、コンソールに com.apple.kextd: Can't create kext cache under / - owner not root.
というエラーメッセージが出力されるようになっていた。文面からするとルートディレクトリのオーナーが root でないことが原因らしい。実際に ls -ld /
してみるとオーナーが一般ユーザーになっていた:
% ls -ld /
drwxrwxrwx 34 uasi staff 1224 4 7 11:10 /
ディスクユーティリティの「ディスクのアクセス権を修復」を実行したが、解決しなかった。このエラーメッセージで検索してみるといくつかのページで解決方法が紹介されているのが見つかる。com.apple.kextd Can't create kext cache under owner not root.の時は :じゃむ☆ぽろりではターミナルで sudo chown root:admin /
を実行すればいいとされているが、ルートディレクトリの元々のオーナーとグループが root:admin で合っているのか不安だったので調べてみた。
Apple のサポートフォーラムのとある投稿によれば、次のコマンドでルートディレクトリのアクセス権の初期設定を確認できるそうだ:
% lsbom -p MUGsf /private/var/db/receipts/com.apple.pkg.BaseSystem.bom | head -1
drwxrwxr-t root admin .
しかし Mavericks では com.apple.pkg.BaseSystem.bom
ファイルが存在しない(OS X 10.9.2で確認)。どうやら com.apple.pkg.BaseSystemBinaries.bom
と com.apple.pkg.BaseSystemResources.bom
の2つに分かれているようなので、 Resources のほうを見てみることにした:
% lsbom -p MUGsf /private/var/db/receipts/com.apple.pkg.BaseSystemResources.bom | head -5
drwxr-xr-x root wheel .
-rw-rw-r-- root admin 0 ./.DS_Store
---------- root admin 0 ./.file
drwxr-xr-x root wheel ./.vol
drwxrwxr-x root admin ./Applications
どう使い分けているかは分からないが、システムディレクトリのグループは wheel と admin が混在しているようだった。肝心のルートディレクトリのグループは wheel だ。 sudo chown root:wheel /
を実行すると、エラーメッセージは出なくなった。パーミッションも sudo chmod 1755 /
で755に戻しておいた。