Macの管理者ユーザーが消えた場合 – read-only file systemエラー –

まずは以下のリンクを参考にしてみてください。凄腕エンジニアが色々と手を尽くしていますので、ほとんどの場合これで上手くいきます。

macOS High Sierraで管理者を消した(消えた、通常ユーザーに戻った)場合に、管理者アカウントを復旧をする方法

【Mac】MacBook Airの管理者権限ユーザーがいなくなった時の対処法【Apple】

管理者アカウントの復旧 – Apple コミュニティ

【管理者ユーザーが消えた?!】Macで管理者ユーザーを再作成する方法

しかし、最近は手順通り rm /var/db/.AppleSetupDone と入力しても read-only file system で削除できない場合があるようです。

read-only file systemエラーの原因

実は、IFIXITの Eli CarpenterHow to reset the password on a Mac.で問題を提起しています。

If you get a message that says “override r——- root/wheel for /var/db/.AppleSetupDone?”, type in “y” and press enter/return.

You may get an error that says, “rm: /var/db/.AppleSetupDone: read-only file system.

If you don’t see a message that says “override r——- root/wheel for /var/db/.AppleSetupDone?”, then continue to the next step.

IFIXIT / How to reset the password on a Mac.

しかし、残念ながら対策手順は触れていません。これはシングルユーザーモードでは、SIP(システム整合性保護)をDisabledにしてもエラーを回避できない事にあります。つまりAppleは悪意のある攻撃者からユーザーを守るためmacOS 10.15 Catalinaからボリュームがシステムとデータボリュームに分割され、システムボリュームがRead-Onlyとなり、アプリケーションはデータのみにアクセス可能となった事が原因のようです。

Read-Onlyを回避してファイルを削除する

まずは、システムをシャットダウンして command (⌘) + R を押しながら電源ボタンを押下して、リカバリーモードで起動します。画面上メニューから、[ユーティリティ] – [ターミナル]を選択して以下のコマンドを入力してください。

-bash-3.2# csrutil disable
Successfully...

更にシングルユーザーモードでマウントした先の/var/dbへターミナルからダイレクトにアクセスするため、以下のようにパスを指定してファイルを削除します。

-bash-3.2# rm /Volumes/Macintosh HD/var/db .AppleSetupDone

これでSIP(システム整合性保護)を回避して、.AppleSetupDone ファイルが削除しましたので、Macを再起動して初期設定に従い新たな管理者ユーザーを作成できます。

投稿者: 二本松 哲也

SPbD:Security&Privacy by Design Founder ー OWASP Member ー ITは人々の生活をあらゆる面でより良い方向に変化させること ー 競争原理から共創原理へ