suコマンドで特権ユーザーになる

【連載コラム:Linuxを学ぼう(10)】
サーバーを扱う上で必須と言える技術が「Linux」。今回はsuコマンドの使い方について解説します。

最終更新日:2023年10月05日

サーバーを管理する上で必須の技術「Linux」の学習の仕方を解説するこのコラムの今回は、前回のコラム記事の中でも少し紹介した「suコマンド」の使い方について解説します。


suコマンドの実行にはrootのパスワードが必要

suコマンドを実行すると、ユーザーrootのパスワードの入力が求められます。ディストリビューションによってはsuコマンドは使わせず、すべてsudoコマンドで行うことを想定して、インストール時にrootのパスワードを設定しないものもあります。その場合、suコマンドの実行は行えません。

以下、実行例です。

[linuc@localhost ~]$ su
パスワード: ※ユーザーrootのパスワードを入力
[root@localhost linuc]#

プロンプトが切り替わり、ユーザーrootになったことが分かります。

-オプションの有無による違い

suコマンドは-オプションが用意されています(文字は何も付きません)。このオプションはユーザーが切り替わった時、そのユーザーでログインし直したのと同じ動作になります。

以下、実行例です。

[linuc@localhost ~]$ su -
パスワード:
[root@localhost ~]#

前の実行例と比較すると、プロンプトに表示されているカレントディレクトリが異なっているのが分かります。

-オプション無し:それまでの環境をそのまま引き継ぎます。
-オプション有り:ログインし直したのと同様にカレントディレクトリが再設定されます。

その他、環境変数なども再設定されるので、状況に応じて使い分けてください。多くの場合、完全に切り替えて作業をするので、-オプションを付けて実行することになるでしょう。

その他の一般ユーザーになる

suコマンドはユーザーrootに切り替えるだけで無く、その他のユーザーに切り替えることもできます。引数にユーザー名を指定します。パスワードはユーザーrootのものではなく、切り替えるユーザーのパスワードを入力します。

以下、実行例です。

[linuc@localhost ~]$ su - lpijapan
パスワード: ※ユーザーrootのパスワードを入力
su: 認証失敗
[linuc@localhost ~]$ su - lpijapan
パスワード: ※ユーザーlpijapanのパスワードを入力
[lpijapan@localhost ~]$

1回目はユーザーrootのパスワードを入力したので失敗しました。2回目は切り替えるユーザーのパスワードを入力したので正しく切り替わりました。

ユーザーrootは誰にでもなれる

ユーザーrootの状態からsuコマンドを実行すると、パスワード無しでどのユーザーにも切り替えられる特権があります。

以下、実行例です。

[root@localhost ~]# su - lpijapan
[lpijapan@localhost ~]$

パスワード認証が求められず、ユーザーが切り替わっています。rootのパスワードが分かっているのであれば、こちらのパターンで切り替えることになるでしょう。

まとめて作業を行う際にはsuコマンド

suコマンドの基本的な動作を解説しました。

最初に述べた通り、ディストリビューションによってはsuコマンドは使えない(使わない)ようにしてありますが、抜け道はあってsudoコマンドを使ってもユーザーの切り替えは行えます。

インストール直後の初期設定時など、まとめて作業を行いたい場合、いちいちsudoコマンドで実行していられない、という場合、ユーザーrootに切り替えて一気に作業することもあります。要は割り切りと使い分けなので、セキュリティ等を考慮した上で、適切に利用するようにしましょう。


筆者紹介
宮原 徹 氏

宮原 徹 氏

株式会社びぎねっと

Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。

バックナンバー

第21回:外部からWebサーバーにアクセスする

第20回:Webサーバーを動かす

第19回:Webサーバーをインストールする

第18回:典型的なネットワークトラブルについて理解する

第17回:ネットワークの状態確認を理解する

第16回:アクセス権に関わる様々なことについて理解を深める

第15回:ファイルのアクセス権を理解する

第14回:パッケージをアップデートする dnf編

第13回:PAMを理解する

第12回:グループとは何かを理解する

第11回:sudoコマンドについて理解する

第10回:suコマンドで特権ユーザーになる

第9回:ユーザー権限を理解する

第8回:SSHによるリモートログイン

第7回:Linuxインストール後にやること

第6回:Linuxイストールの実際

第5回:Linuxインストールの準備

第4回:Linux学習のためのネットワーク環境

第3回:学習環境を用意する

第2回:Linuxをどう学ぶのか

第1回:Linuxを学ぼう

ページトップへ