Linuxのユーザの中には、スーパーユーザと呼ばれる管理者権限を持つ特別なユーザがあります。
スーパーユーザは、ユーザ名が「root」であることから、「rootユーザ」とも呼ばれます。
今回は、一般ユーザからスーパーユーザになる際に、認証失敗した時の対処法についてです。
実行環境
・ホストOS: Windows 11
・仮想化技術: Windows Subsystem for Linux 2 (WSL2)
・ゲストOS: Ubuntu 22.04.3 LTS
やりたいこと
一般ユーザからスーパーユーザになって、管理者権限で実行したい。
やってみたこと
スーパーユーザになるには、suコマンドを実行するとあったので、実行したところパスワードを求められました。そこで、現在ログインしているユーザのパスワードを入れてみたところ、認証が失敗してしまいました。
ここで入力したパスワード以外に設定したものはなかったので焦りました。
$ su
パスワード:
su: 認証失敗
原因
Ubuntuなど一部のディストリビューションではスーパーユーザのパスワードがデフォルトで設定されていないため、suコマンドでスーパーユーザになることはできない模様。
解決方法
suコマンドをsudoコマンドで実行すればよい。
$ sudo su -
[sudo] haru のパスワード:
#
# プロンプトが$から#に変わり、スーパーユーザに切り替わったことが分かる。
※sudoコマンドは現在ログインしているユーザのパスワードを入力するため、スーパーユーザのパスワードが設定されていなくても実行できる。
※suコマンドに、-(ハイフン)を付けるとスーパーユーザの環境に初期化されてユーザが変わる。
一般ユーザの環境変数などを引き継いだままスーパーユーザになると、アプリケーションによってはうまく動作しなくなる場合があるので、基本的には、-(ハイフン)を付けて実行するのが良い。
スーパーユーザから一般ユーザに戻るにはexitコマンドを実行すれば良い。
# exit
ログアウト
$
おわりに
1つのコマンドだけをスーパーユーザ権限で実行できるsudoコマンドを使った方が、常にスーパーユーザで継続するsuコマンドより安全だと思うので、使いどころには気を付けたいところ。
コメント