suコマンドで認証失敗:スーパーユーザになれない場合の対処法【Linux入門】

Linux

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コマンドより安全だと思うので、使いどころには気を付けたいところ。

コメント

タイトルとURLをコピーしました