Mac
 Computer >> コンピューター >  >> トラブルシューティング >> Mac

Macのディスクアクセス権を徹底解説:macOSでアクセス権を修復・リセットする方法

Macのトラブルシューティングといえば、「アクセス権を修復してみましたか?」という定番のアドバイスが古くからネット上で囁かれてきました。多くのユーザーにとって、この方法は一見原因不明の問題を解決してくれる魔法のように思えたものです。しかし、OS X El Capitan(10.11)の登場とともに、ディスクユーティリティから「ディスクアクセス権を修復」オプションが突如姿を消しました。

これはAppleがmacOSのアクセス権関連の問題を完全に解決したということなのでしょうか?それとも別の事情があるのでしょうか?本記事では、この謎を解き明かしながら、Macにおけるディスクアクセス権の仕組みについて詳しくご紹介します。

macOSにおけるアクセス権の仕組み

Mac上のすべてのファイルやフォルダには、それぞれアクセス権(パーミッション)が設定されています。これにより、どのユーザーアカウントがその項目にアクセスできるのか、またどのような操作が許可されるのかが制御されます。アクセス権は「読み出し」「書き込み」「実行」という3つの操作と、「所有者」「グループ」「全員」という3種類のユーザーによって構成されています。

各所有者階層ごとに、個別に権限ルールを設定できます。アクセス権は、アカウントや所有権と組み合わせることでセキュリティを確保し、制御された共有を可能にし、ファイルへのアクセスを制限したり、システム全体の整合性を維持したりする役割を果たします。

ファイルシステムのアクセス権を確認する

ファイルやフォルダのアクセス権は、Finderの「情報を見る」ウィンドウまたはターミナルから誰でも確認できます。Finderでは、対象のファイルやフォルダを右クリックし、コンテキストメニューから「情報を見る」を選択します。次に、「共有とアクセス権」の三角マークをクリックして展開すると、その項目のアクセス権が表示されます。

Macのディスクアクセス権を徹底解説:macOSでアクセス権を修復・リセットする方法

ターミナルで確認するには、以下のコマンドを入力します:

ls -l "ファイルへのパス"

ダッシュの後の文字は小文字のL(エル)であり、ファイルの所有権とアクセス権が表示されます。コマンドラインでは、読み出し権限はr、書き込みはw、実行はxという略号で表されます。

Macのディスクアクセス権を徹底解説:macOSでアクセス権を修復・リセットする方法

所有者、グループ、全員

Macのアクセス権フィールドに表示される3種類のユーザーについて、詳しく見ていきましょう:

  • 所有者:項目を作成したユーザー、またはMacにコピーしたユーザーのことです。通常、ユーザーは自分のホームフォルダ内のほとんどの項目を所有しています。
  • グループ:すべての項目はグループにも所有されています。グループとは、アクセス権を全メンバーに一括適用できるよう、複数のユーザーアカウントをまとめたものです。
  • 全員:ローカルユーザー、共有ユーザー、ゲストユーザーを含む、すべての人に対するアクセス権を定義するための設定です。

読み出し、書き込み、実行

次に、これらのユーザーに付与できる3種類のアクセス権を確認しましょう:

  • 読み出し:ユーザーやグループのメンバーはファイルを開くことはできますが、変更を保存することはできません。フォルダの場合は、中の項目一覧を閲覧できます。
  • 書き込み:ユーザーやグループのメンバーは、ファイルの変更や削除ができます。フォルダの場合は、フォルダの内容を変更できます。
  • 実行:実行権限を持つファイルは、プログラムやスクリプトとして動作できます。フォルダの場合、読み出し権限も有効になっていれば、内容の一覧を表示できることを意味します。

アクセス権の問題を引き起こす要因

OS X Yosemite以前では、ディスクユーティリティを使って一部のファイルやフォルダのアクセス権を検証・修復できました。しかし実際には、このアプリはアクセス権を「修復」していたわけではなく、単に初期状態へリセットしていたのです。

さらに言えば、ディスクユーティリティがアクセス権を「修復」するという表現は、アクセス権が時間の経過とともに劣化したり破損したりするかのような印象を与えます。しかしこれは誤りです。アクセス権は、何らかの要因によって変更されない限り、同じ状態を保ち続けます。変更される主な理由には、以下のようなものがあります:

  1. アプリのインストーラ:一部のインストーラは、インストールプロセスの一環として既存の項目のアクセス権を変更しますが、正しい設定に戻さないまま終了することがあります。
  2. ユーザーのミス:ターミナルやサードパーティ製アプリでアクセス権を操作していると、うっかりミスが問題につながることがあります。例えば、chmodコマンドの不適切な使用は、項目のアクセス権設定を意図せず変更してしまう可能性があります。
  3. フォルダの共有:「共有」フォルダ内の項目には、コンピュータ上のすべてのユーザーがアクセスできます。このフォルダを一時的なファイルの受け渡し場所として使う分には問題になりませんが、複数人で恒久的に使用するファイルを保管すると、トラブルが発生することがあります。
  4. コピーした項目のアクセス権:外部ボリューム、SMB、FTP経由でファイルをコピーする際、macOSがどのようなアクセス権を割り当てるかは予測が難しく、試行錯誤が必要になる場合があります。

OS X El Capitan以降、何が変わったのか?

OS X El Capitanでは、Appleがシステム整合性保護(SIP:System Integrity Protection)を導入し、すべてのシステムファイル、フォルダ、さらにはバンドルアプリまで保護するようになりました。SIPは、意図的・偶発的な改ざんからシステムの内容を守ると同時に、デフォルトのアクセス権設定も維持します。SIPが保護するのは、/System/usr/bin/sbinの各ディレクトリです。

Apple製アプリのアップデートやmacOSのアップグレードを行う際、インストーラが必要に応じて項目のアクセス権をチェックし、リセットします。SIPを無効化しない限り、どんなサードパーティ製アプリでもアクセス権を変更することはできません。

ユーザーフォルダとホームフォルダはどうなる?

SIPは/Libraryフォルダ内の項目、/Applications内のアプリ、そしてホームフォルダ内のすべてのデータまでは保護しません。特に~/Libraryフォルダは重要で、システムの中核となる環境設定ファイル、サードパーティ製アプリの設定情報、キーチェーンデータなどが格納されています。

これらのファイルやフォルダのアクセス権が変更されると、Mac上でさまざまな奇妙な問題が発生する可能性があります。アクセス権の誤設定によって起こりうる問題には、次のようなものがあります:

  • Finder、システム環境設定、Dockへの変更が保存されない
  • 前回ログアウト時やアプリ終了時に開いていたウィンドウが、ログイン後に再び開く
  • ホームフォルダ内の特定の項目を移動する際、管理者パスワードを求められる
  • 「macOSがアプリケーションを実行するにはライブラリを修復する必要があります」というメッセージが繰り返し表示される
  • ファイル保存時に「ファイルがロックされている」または「必要なアクセス権がない」というメッセージが表示される(Microsoft Officeのドキュメントでよく発生)
  • 標準アプリやサードパーティ製アプリが起動時にクラッシュする。アップデートに失敗するアプリもある
  • FirefoxやChromeが設定を読み込まず、「プロファイルを読み込めません」と表示される
  • 写真アプリに読み込んだ写真や動画がアプリ内に表示されない。または、アプリを開くたびにデフォルトの写真ライブラリを選択するよう求められる

ホームフォルダのアクセス権をリセットする

Finderのサイドバーでホームフォルダを右クリックし、「情報を見る」を選択します。「共有とアクセス権」のドロップダウン三角形をクリックして、アクセス権を表示します。

Macのディスクアクセス権を徹底解説:macOSでアクセス権を修復・リセットする方法

ウィンドウ下部の鍵アイコンをクリックし、管理者パスワードを入力します。次にアクションメニュー(歯車アイコン)を選択し、「内包している項目に適用」を選びます。

Macのディスクアクセス権を徹底解説:macOSでアクセス権を修復・リセットする方法

OKをクリックして操作を確定すると、更新されたアクセス権がホームフォルダ全体に反映されます。

Macのディスクアクセス権を徹底解説:macOSでアクセス権を修復・リセットする方法

続いて、ターミナルアプリを開いて以下のコマンドを入力します:

diskutil resetUserPermissions / `id -u`

このコマンドは、ルートボリューム(/)上の現在のユーザーIDに対するユーザーアクセス権をリセットします。問題なく完了したら、Macを再起動しましょう。

ただし、エラー69841が表示された場合は、以下の手順に従ってください:

macOS High Sierra以前の場合

  1. ターミナルアプリを開き、以下のコマンドを入力します:
    chflags -R nouchg ~
  2. 続けて、再度このコマンドを入力します:
    diskutil resetUserPermissions / `id -u`
  3. Macを再起動します。

macOS Mojave以降の場合

Mojave以降の手順は上記と同じですが、事前にターミナルをフルディスクアクセスに追加しておく必要があります。システム環境設定 > セキュリティとプライバシーを開き、「プライバシー」タブをクリックします。左下の鍵アイコンをクリックして管理者パスワードを入力し、変更を可能にします。

Macのディスクアクセス権を徹底解説:macOSでアクセス権を修復・リセットする方法

次に、「フルディスクアクセス」タブを選択し、「+」ボタンをクリックしてターミナルアプリを追加します。

Macのディスクアクセス権を徹底解説:macOSでアクセス権を修復・リセットする方法

この設定を行った後、High Sierra以前向けに紹介したターミナルコマンドを実行してください。

Macのユーザーアカウントを理解する

ディスクユーティリティからアクセス権修復オプションが消えたとき、多くの人はあまり気に留めませんでした。というのも、それは決して重要なトラブルシューティング手順ではなかったからです。しかし、アクセス権の誤設定によって遭遇しうる問題の種類を見てみると、ホームフォルダのアクセス権のリセットは、こうした問題が発生した際の最後の手段であることがわかります。

Appleがこのオプションを廃止したことは意外に思えますが、必要なときだけこれらの手順を適用すべきであることを忘れないでください。アクセス権の理解は複雑なテーマですが、macOSのユーザーアカウントの仕組みを理解すれば、ぐっと取り組みやすくなります。詳しくは、Macで複数のユーザーアカウントを設定するガイドもあわせてご覧ください。


  1. Macがフリーズする?ディスクのアクセス権限を修復して解決する方法

    コンピューターのトラブルを「幸運な出来事」と呼ぶことはめったにありません。しかし、コラムを執筆しようと席に着いた直後にMacの不調に見舞われたとき、この言葉こそがふさわしいのです。今回は、Macが頻繁にフリーズし、すべてのアプリが「応答なし」状態になってしまうという問題に直面しました。再起動しても症状が改善しなかったため、原因はディスクにあると判断。そこで必要になったのが、リカバリーモードでの起動です。 リカバリーモードで起動する手順 有線キーボードをお持ちであれば、この作業はとても簡単です。Bluetoothキーボードしかなく、リカバリーモードに入れない場合は、Appleのサポートコミュ

  2. macOSをダウングレードする2つの方法|Time Machine復元と旧OSクリーンインストールの手順

    通常、macOSのアップデートでMacに問題が発生することはほとんどありません。しかし、特定のアップデートによって機能が正常に動かなくなったり、システムの動作が不安定になったりするケースもあります。そのような不具合に見舞われた場合は、アップデートを元に戻す(ロールバック)ことを検討するとよいでしょう。 ただし、お気に入りの旧バージョンのmacOSに戻すのは決して簡単ではありません。実は、MacにはmacOSを旧バージョンへダウングレードするための専用オプションがどこにも用意されていないのです。 とはいえ、ダウングレードする方法がまったくないわけではありません。アップデートをロールバックして