<概要>
| 機能 | 権限の一時的な変更を行う |
|---|---|
| 書式 | su [オプション]… [-] [USER [ARG]…] |
通常は一般ユーザーでターミナルを使うわけだが、どうしてもroot権限が必要になる場合、というのがおそらく一番多い用途かと思う。
一時的に、ターミナルにログインしたユーザーとは別のユーザー権限でターミナルを使いたいときに使うのが、この su コマンドとなる。
<オプション>
| オプション | 説明 |
|---|---|
| – -l –login |
「ログイン・シェル」を使用して、ユーザーを切り替える。 |
| -c ‘COMMAND’ –command=’COMMAND’ –session-command=’COMMAND’ |
ユーザーの切り替え直後に’COMMAND‘を実行する。 |
| -f –fast |
初期設定ファイル(.bashrc/.cshrc など)を実行しない。 |
| -m –preserve-environment -p |
以下の環境変数の値を変更しない。 HOME, SHELL, USER, LOGNAME |
| -s ‘SHELL’ –shell=’SHELL’ |
‘SHELL’で指定したシェルを実行 |
| –help | ヘルプを表示して終了 |
| –version | バージョン情報を表示して終了 |
| USER | ログインするユーザー名。省略時は”root” |
| ARG | 「ログイン・シェル」に引き渡す引数 |
<使用例(随時追加)>
一時的にrootユーザーに切り替える場合、以下のいずれかのコマンドを実行。
su ・・・(1)
su - ・・・(2)
su -m ・・・(3)
su -p ・・・(4)
su -f ・・・(5)
(1) オプションを何も付けずに実行すると、”root”に切り替えることになるが、シェルの動作設定は一般ユーザーとしてログインしていた時の設定を引き継ぐ。
カレントディレクトリもそのままだが、HOME環境変数などはroot用のものに変わっているので、”cd”コマンドを単独で実行すると、”root”のホームディレクトリに移動する。
(2) ‘-‘のオプションを付けて実行すると、root用のログインシェルを使用して、ユーザーを切り替える。すぐに違いが現れる箇所としては、カレントディレクトリがrootのホームディレクトリに移動している。
(3),(4) 切り替え直後の挙動は(1)の場合と似ているが、HOME環境変数が変わらないので、”cd”コマンドを単独で実行すると、suコマンドを実行した、一般ユーザーのホームディレクトリに移動する。
(5) 説明にある通り、初期設定ファイルを実行しないということだが、これによって”ll”など、エイリアスとして登録されているコマンドが使用できない模様。
正直、普段使うのは(1)か(2)が多いので、(3)以降は、あえて使うシーンが思い浮かばない。

コメント