su

<概要>

機能 権限の一時的な変更を行う
書式 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)以降は、あえて使うシーンが思い浮かばない。

 

コメント

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