このような場合、Mac OS Xでは「シングルユーザーモード」でOSを起動して、ユーザーのパスワードを自由に書き換えてログインできるようにすることができます。万が一の場合に便利なのでご紹介いたします。
参考にしたページはこちら。
http://d.hatena.ne.jp/viz3/20091029
■対象環境
- Mac OS X 10.4以上であること (launchctlを使用するため)
- UNIX / Linuxの対話環境についてある程度以上の知識があること
- 失敗しても泣かない心があること
1.シングルユーザーモードでMacを起動する
Macの電源を押して起動する際に、キーボードのCommand + Sキーを同時に押しっぱなしにしておくと、シングルユーザーモードで起動することができます。真っ黒な画面に文字がずらずら出てきたら成功です。
2./を読み書き可能にする(再マウントする)
画面上に
If you want to make modifications to files:と表示されているので、ここに表示されているコマンドをそのまま入力します。コマンドの内容は以下の通り:
/sbin/fsck -fy
/sbin/mount -uw /
/sbin/fsck -fy
は強制的にディスクチェックとディスクの問題修正を行う。-yがついているので、全ての問い合わせに対してYESを返したものと見なす。/sbin/mount -uw /
はすでに読み取り専用モードでマウントされている/を再度書き込み可能なモードでマウントし直す。
3.dsclをlocalonlyモードで起動する
お次はdsclというツールを使用します。ですがこのツールそのままでは起動できないようなので(dscl .とタイプするとなにやら警告が出ると思います)、以下のようにしてlaunchctlを使ってdsclツールの設定ファイルを読み込んでから、dsclをlocalonlyモードで起動します。
launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServicesLocal.plist
dscl localonly
4.対象のアカウントのパスワードを書き換える
dsclがlocalonly対話モードで起動したら、cdコマンドとlsコマンドを利用して対象のアカウントのある
/Local/Target/Users
まで移動します。> lsここまで移動できたら、以下のコマンドを入力すればパスワードが書き換わります。
Local
Contact
Search
> cd Local
/Local > ls
Default
Target
/Local > cd Target
/Local/Target > cd Users
/Local/Target/Users > ls
ずらずらとここにアカウント名が羅列されるはず
passwd 対象のユーザー 新しいパスワードたとえばさっきの状態からユーザーakisuteのパスワードをabesiに書き換えたいなら、
passwd akisute abesiです。
5.再起動してログインする
あとは再起動して普通にMacを起動します。
reboot先ほど入力したパスワードでログインできるはずです。
■注意
この方法を用いれば、物理的にアクセス可能な任意のMacの操作権限を奪うことが可能になってしまいます。くれぐれも悪用しないように。
逆に、この方法を用いてアクセスされたくないMacについては、以下のページで紹介されている方法を用いてシングルユーザーモードによる起動を禁止することができます。
Mac OS X 10.1 以降で、ファームウェアのパスワードプロテクションを設定する
■UNIX / Linuxユーザー向け
Mac OS Xのユーザーって、/etc/passwdじゃなくてDirectory Serviceで管理されてるんですねー。最初/etc/passwd以下を調べに行ってハマりました・・・