2010年1月9日土曜日

パスワードが無くなってログインできない Mac に無理矢理ログインする方法

会社で前任者が使用していたMacを使用する際など、管理者ユーザーのパスワードが紛失してしまってログインできなくなってしまう場合があります。っていうか、実際になって大変困りました><
このような場合、Mac OS Xでは「シングルユーザーモード」でOSを起動して、ユーザーのパスワードを自由に書き換えてログインできるようにすることができます。万が一の場合に便利なのでご紹介いたします。

参考にしたページはこちら。
http://d.hatena.ne.jp/viz3/20091029


1.シングルユーザーモードでMacを起動する
Macの電源を押して起動する際に、キーボードのCommand + Sキーを同時に押しっぱなしにしておくと、シングルユーザーモードで起動することができます。真っ黒な画面に文字がずらずら出てきたら成功です。


2./を読み書き可能にする(再マウントする)
画面上に
If you want to make modifications to files:
/sbin/fsck -fy
/sbin/mount -uw /
と表示されているので、ここに表示されているコマンドをそのまま入力します。何やってるかは知りません。多少時間がかかるので気長に待ちましょう。


3.dsclをlocalonlyモードで起動する
お次はdsclというツールを使用します。ですがこのツールそのままでは起動できないようなので(dscl .とタイプするとなにやら警告が出ると思います)、以下のようにしてlocalonlyモードで起動します。
launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServicesLocal.plist
dscl localonly


4.対象のアカウントのパスワードを書き換える
dsclがlocalonly 対話モードで起動したら、cdコマンドとlsコマンドを利用して対象のアカウントまで移動して・・・
 > 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ユーザー向け
Mac OS Xのユーザーって、/etc/passwdじゃなくてDirectory Serviceで管理されてるんですねー。最初/etc/passwd以下を調べに行ってハマりました・・・

6 コメント:

andrew さんのコメント...

MacOS Xのインストールディスクのツール群の中にパスワードリセットのものがあった気がするのですが、あれとはなんか関係あるのでしょうか?

akisute さんのコメント...

> andrewさん
コメありがとうございます!
はてブのほうでもご指摘あったのですが、インストールディスクにパスワードリセットツールなるものがあるんですね!知らなかったです・・・
おそらくパスワードリセットツールと今回ご紹介した方法にはあんまり関係は無いですが、インストールディスクが利用可能ならそちらを使った方が安全でMacに優しい(?)と思いますので、そちらをお勧めします。

今回はインストールディスクもなかったのでこんな無理矢理な方法をとりました><
(もしあればクリーンインストールしてました)

Sachio(satou_to_shio@dj.pdx.ne.jp) さんのコメント...

こんにちは。初めまして。

前任者もパスワード分からなく、しかもインストールディスクもないので「パスワードリセットツール」なるものも利用できない状態です。
どうにかならないかなとウェブで探してここを見つけました。

それで質問なんですが、

■3.dsclをlocalonlyモードで起動する■のところなんですが、
"localhost:/ root#"の後に"launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServicesLocal.plist"を入力して、
"return"を押せばいんですよね?

手順としては、①/sbin/fsck -fy ②/sbin/mount -uw / ③launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServicesLocal.plist
 ④dscl localonly

ってことですか?

現在の画面の状況です↓
-------------------------------------------------------------
Sun Jan 11 08:12:17 JST 1970
Singleuser boot -- fsck not done
Root device is mounted read-only
If you want to make modifications to files,
run '/sbin/fsck -y' first snd then '/sbin/mount -uw /'
localhost:/ root# sbin/fsck -y
** /dev/rdisk0s3
** Root file system
**Checking HFS Plus volume.
fsck_hfs: Volume is journaled. Nochecking performed.
localhost:/ root# sbin/mount -uw
root_device on / (local, read-only, jouranaled)
devfs on /dev (local)
localhost:/ root# dscl localonly

-------------------------------------------------------------
ここで動かなくなっています。


使用しているパソコンはiBook G4のOSXで、ヴァージョンがログインできないため分かりません。

分かりにくい質問すいません。よろしくお願いいたします。

akisute さんのコメント...

> Sachioさん
返事遅くなりました!

> "localhost:/ root#"の後に"launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServicesLocal.plist"を入力して、
"return"を押せばいんですよね?

はい、そうです。ですので、

①/sbin/fsck -fy
②/sbin/mount -uw /
③launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServicesLocal.plist
④dscl localonly

であってます。

貼り付けていただいたログを見る限りだと、launchctl loadを実行していないためdsclが成功していないような気がします。試してみてください!

さんのコメント...

その後キーチェーンのアクセスパスワードも変えなければ行けないと思うのですがそれが変更前のパスワードが必要になります。 キーチェーンのパスワードを変更後のパスワードにかえないといけないとおもうのですが変更前のパスワードが必要ということもあり変えれない状態でシステム変更に支障がでたり 苦労の絶えない状態となります。その点について解答お願いできないでしょうか?

akisute さんのコメント...

> 将さん
私の場合はですが、ログインパスワードを変更してそのユーザーでログインした後、別の管理者ユーザーを作成しました。

その後、新規に作成し直した別の管理者ユーザーでログインして、そのままそのユーザーで今仕事しています。なので、前任者のキーチェーンには一切触っていません。幸いにして、無いと困るものは入っていなかったようです。