連載
» 2016年11月24日 05時00分 UPDATE

Linux基本コマンドTips(67):【 su 】コマンド――スーパーユーザー(rootユーザー)の権限でシェルを実行する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「su」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、スーパーユーザー(rootユーザー)の権限でシェルを起動する際に使用する「su」コマンドです。

suコマンドとは?

 「su」は、ログインし直さずに他のユーザーに切り替える(substitute user)コマンドです。通常は「スーパーユーザー(rootユーザー)」の権限でシェルを動かして、さまざまなコマンドを実行したい場合に使用します。


suコマンドの書式

su [オプション] [ユーザー]




suコマンドの主なオプション

 suコマンドの主なオプションは次の通りです。

短いオプション 長いオプション 意味
-c コマンド --command=コマンド 対話シェルは起動せずにコマンドを実行する(シェルに「-c」オプションとともに指定したコマンド列を渡す)
-f --fast シェルに「-f」オプションを渡す(csh/tcsh用。「-f」は「.cshrc」を読み込まないオプション)
-,-l --login シェルを「ログインシェル」にする(ログイン時のスタートアップファイルを読み、環境変数を再設定する)
-m,-p --preserve-environment 環境変数「HOME」「USER」「LOGNAME」「SHELL」を変更せず、「/etc/passwd」に設定されているシェルではなく、環境変数SHELLで指定されているシェルを実行する
-s シェル --shell=シェル 実行するシェルを指定する


スーパーユーザーでシェルを起動する

 「su」を単独で実行すると、「スーパーユーザー(rootユーザー)」としてシェルが実行されます。つまり、suコマンド実行以降は、全てのコマンドがrootユーザーとして実行されることになります。プログラムのインストールやアップデートなど、root権限が必要なコマンドを実行する際に使用します。

 suを実行するとパスワードの入力が求められるので、「rootユーザーのパスワード」を入力します。正しいパスワードが入力されると、その時点からrootユーザーとしてシェルを実行していることになります。

 例えば、CentOSのデフォルトのプロンプト設定(環境変数「PS1」)は「[\u@\h \W]\$ 」ですが、これは「ユーザー名@ホスト名 ワーキングディレクトリ」および「一般ユーザーならば『$』、スーパーユーザーならば『#』」という意味なので、プロンプトの表示内容が変わります(以下の実行例の画面1では、見やすくするためにプロンプト部分に色を付けています)。

 また、自分自身のユーザー名を表示する「whoami」コマンドの実行結果も「root」となります。「exit」コマンドで元のユーザーに戻ります。

コマンド実行例

su

(スーパーユーザーに切り替える)(画面1


画面1 画面1 suでスーパーユーザー(rootユーザー)に切り替わる。プロンプトが変わり、「whoami」の実行結果も「root」になる。「exit」で元のユーザーに戻る


スーパーユーザーの権限でコマンドを実行する

 suコマンドでrootユーザーに切り替わると、「exit」コマンドを実行するまで元のユーザーに戻りません。うっかり元のユーザーに戻るのを忘れてしまうようなトラブルを避けたい場合は、「su -c コマンド」のように「-c」オプションを使って、実行したいコマンドを指定します。

コマンド実行例

su -c コマンド

(指定したコマンドだけをroot権限で実行する)


 「-c」オプションを指定することで、指定したコマンドだけをroot権限で実行できます。「sudo コマンド」と同じ働きですが、suコマンドの場合はrootユーザーのパスワードが必要となります。

【※】sudoコマンドの実行時には、自分のパスワードを入力します。なお、sudoの実行には「sudoers」の設定(sudoeditで変更)が必要です。Ubuntuのように、あらかじめ許可されている場合もありますが、CentOSの場合は別途許可を追加する必要があります。



 また、実行したいコマンドにオプションがある場合は、引用符(")を使って「su -c "yum install wget"」のように指定します(画面2)。

画面2 画面2 root権限で「yum install」を実行する。「-c」によって、コマンド実行後は元のユーザーに戻っている


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。