本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「su」コマンドです。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、スーパーユーザー(rootユーザー)の権限でシェルを起動する際に使用する「su」コマンドです。
「su」は、ログインし直さずに他のユーザーに切り替える(substitute user)コマンドです。通常は「スーパーユーザー(rootユーザー)」の権限でシェルを動かして、さまざまなコマンドを実行したい場合に使用します。
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)
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)。
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.