macOSアップデートで管理者権限が消えた時の復旧方法

# 前書き

* 情報が古い／説明不足だったので纏め直すものです。
  * ひと昔前に話題になったrootユーザでのログインや、クリーンインストール勧めていたり...
  * ファイル削除を指示しつつ、説明が弱かったり...

* 個人の作業事例であり、復旧を保証するものではないです。
  とはいえ困った人の手助けになれば幸いです。

# 事象

* 古いmacOSをアップデートしたら、設定済ユーザの管理者権限が外れた。
  * From : High Sierra(10.13)
  * To : Big Sur(11)
  * 「ユーザとグループ」で確認したところ以下の通り、通常ユーザになっている。

![before.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32882/674306fa-3e0f-e284-8424-3a17e84f37c7.png)

* 「変更するにはカギをクリックします」操作も不可になった。
  * クリックで表示される別ウィンドウ「ユーザ名」フォームも、空欄になってしまう。  
    管理者権限あるユーザでログインしていれば、自動で入力されてた箇所。
  * 「ユーザ名」「パスワード」を手入力しても弾かれる  
    (＝"ユーザとグループ"で表示される情報は、間違っていない)

# 困ること

* 当然いろいろ困ります。
  * システム設定を一切、変更できない。
  * アップデートで引き継がれなかった、タイムゾーン設定などの細々した部分も変更不可。
  * 権限追加しようにも、管理ユーザじゃないため操作不能。

# 原因

* 「バグだぞ」記事あり。そうですねバグですね。。
  * 表現が「password bug」になってますが前述の通り、権限まわり不具合だと思料。

https://ja.purelysandy.com/how-to-deal-with-the-macos-big-sur-password-bug

# 復旧フロー：概要

* MacOS起動した際に、初期設定画面が出るように設定変更。
  * 具体的にはフラグファイル(.AppleSetupDone)を削除。
  * クリーンインストール時にも"初期設定画面"を使うのでドキッとしますが、既存ユーザへの影響は無いです。

* 管理者ロールを持つ作業用ユーザを新規追加。
  * 今回の例では"recovery-admin"を追加します。

* 外れてしまった管理者権限を付与。
  * 作業用ユーザでログインして「ユーザとグループ」ウィンドウを操作します。 

* 画面の指示に従ってmacOS再起動。

---

* 手順を経て、以下のように設定済ユーザの管理者権限が元通りになります。

![after.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32882/18af8d3e-f22d-a707-8aa8-f340f789ad5c.png)


# 復旧手順：詳解

## MacOS起動した際に、初期設定画面が出るように設定変更

* Time Machineを使ってMacOS全体のバックアップを取ります。
  * 復旧手順が思い通り進まなかった時に備えるもの。保険です。

* macOSをシャットダウンします。

* リカバリーモードで起動。
  * すなわち、Command+Rを押し続けながら電源ボタン押します。

* 「Time Machineから復元」などメニュー出てくるので、上部メニューバーから「ユーティリティ」→「ターミナル」を選択。

* 「ターミナル」ウィンドウに以下4コマンドを打ちます。

```bash
# ReadOnlyモード解除
## rmコマンド使うため。
-bash-x.x# csrutil disable

# フラグファイル削除：前準備
## 次回macOSを起動したときに初期設定を出したいため。
## 入力は、tabキーで入力補完しながら操作してください。cat[スペース]/Vo[tabキー]/Mac[tabキー] のように。
-bash-x.x# cat /Volumes/Macintosh￥ HD/var/db￥.AppleSetupDone
-bash-x.x# 
# catコマンドで何も表示されないことを確認。
## 何か出力された場合は、恐らく対象ファイル間違えています。

#フラグファイル削除
## 入力は、[↑キー]使って前回catコマンドを入力補完のうえ、[←キー]使ってcat部分をrmに書き換えてください。
-bash-x.x# rm /Volumes/Macintosh￥ HD/var/db￥.AppleSetupDone

#再起動
-bash-x.x# reboot
```

## 管理者ロールを持つ作業用ユーザを新規追加

* 再起動が完了すると初期設定画面が立ち上がります。
  * 「国または地域を選択」画面は「日本」を選択。
  * 視覚効果の設定など聞かれますが、基本「後で設定」を選択。
  * 「移行アシスタント」画面も「今はしない」を選択。
  * AppleIdとの連携なども「後で設定」「今はしない」を選択。

* アカウント作成の画面まで辿り着いたら、作業用ユーザを作ります。
  * アカウント名"recovery-admin"および、新規パスワードを入れます。

## 外れてしまった管理者権限を付与

* 作業用ユーザでログインします。
  * システム起動時のユーザで"recovery-admin"も選択できるようになるのでクリック。
  * パスワード求められるので入力。

* システム環境設定から「ユーザとグループ」を選択。ウィンドウを開きます。
  * 「その他のユーザ」部分に、権限が降格してしまった通常ユーザが表示されます。

* 同ウィンドウでユーザ権限を付けます。
  * 「変更するにはカギをクリックします」操作で、"recovery-admin"とパスワードを入力。
  * 「このコンピュータの管理を許可」チェックボックスをON。
  * 「システムが次回に起動した以降で有効になる」旨メッセージが出るのでOKします。

## 画面の指示に従ってmacOS再起動

* システムを再起動。
* 「ユーザとグループ」で、設定済ユーザの管理者権限が付いたことを確認します。
* （不要なら）作業用ユーザを削除します。

![after.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32882/18af8d3e-f22d-a707-8aa8-f340f789ad5c.png)

# 参考にしたページ

https://qualias.net/if-the-mac-admin-user-disappears/

https://qiita.com/hotas_3220/items/ca98e809f4ffca8e754a

https://bottlingpapers.com/2020/11/14/mac%E3%81%AB%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%A7%E3%81%8D%E3%81%AD%E3%81%87/

https://weblog10.com/post-2887#%E7%AE%A1%E7%90%86%E8%80%85%E6%A8%A9%E9%99%90%E3%82%92%E5%BE%A9%E6%B4%BB%E3%81%A7%E3%81%8D%E3%81%9F%E6%96%B9%E6%B3%95