はじめに
「Linuxコマンド200本ノック」を学習している最中に、macOSでsu -
コマンドを試したところ、初手でログインに失敗しました。本記事では、その解決方法について解説します。
問題
macOSでsu -
コマンドを実行すると以下のようなエラーが発生します。
% su -
Password: # パスワードを入力するが
su: Sorry # ログインに失敗する...
この原因を調査した結果、macOSではデフォルトでrootユーザーが無効化されていることが分かりました。
解決方法
1. rootユーザーのパスワードを設定する
macOSでsu -
コマンドを使えるようにするには、まずrootユーザーのパスワードを設定する必要があります。
以下のコマンドを実行してください:
% sudo passwd root
Changing password for root.
New password: # 新しいパスワードを入力
Retype new password: # 確認のため再入力
設定が完了すると、次のような警告が表示される場合があります:
################################### WARNING ###################################
# This tool does not update the login keychain password. #
# To update it, run `security set-keychain-password` as the user in question, #
# or as root providing a path to such user's login keychain. #
###############################################################################
この警告は、ログインキーチェーンのパスワードが更新されない可能性について注意喚起しているものですが、通常の利用では問題ありません。
2. 再度su -
でログイン
rootユーザーのパスワードを設定した後、以下のコマンドを実行してください:
% su -
Password: # 設定したパスワードを入力
root# # rootユーザーへの切り替え完了!
これで、rootユーザーとしての作業が可能になります。
補足
macOSがrootユーザーをデフォルトで無効化しているのは、「フールプルーフ(Fool Proof)」という設計思想に基づいています。
フールプルーフとは、「ユーザーがミスをしても危険な操作ができない仕組み」のことです。
rootユーザーの権限は非常に強力で、システム全体に影響を与える変更を行うことができます。そのため、macOSでは意図的にrootユーザーの使用を制限し、誤操作によるシステム破壊のリスクを軽減しています。
rootユーザーを有効化した後は、慎重に操作を行いましょう。
おわりに
macOSでsu -
を使用するためには、rootユーザーの有効化が必要です。本記事の手順を参考に設定を行い、安全に作業を進めてください。
参考文献
- 「Linuxコマンド200本ノック」ひらまつ しょうたろう
- フールプルーフの意味とは 安全と品質のために知っておきたい考え方