blog

ユーザの切り替えの時の注意!

Linux講座

2016.07.28

ユーザの切り替えの時の注意!

梅雨明けしましたね!
今年の夏は暑いらしいので、夏バテしないよう体調管理はしっかりしましょう^^

さて、今日はsuコマンドの-(ハイフン)についてです

管理者(root)ユーザの仕事である、ユーザとグループの管理の授業で出てくるsuコマンド
これは一時的に他のユーザに切り替わるコマンドです。

授業で使用しているテキストには

$ su

で、カレントディレクトリを変更せずにrootユーザに切り替わる。

$ su –

の場合は、rootユーザのホームディレクトリにカレントディレクトリを変更して切り替わる。

と説明されていました。
自分もその程度の認識だけだったのですが、
なにやら他にも挙動が変わってくる部分があるという事を最近知りました。
suコマンド実行前のユーザの環境変数を引き継ぐか、新しくrootに設定されている環境変数を読み込むかの違いがあるそうです。

恐らく、一番影響がある部分を挙げるとしたらPATH環境変数でしょう。
suコマンドでrootに切り替わった時のPATH環境変数を確認してみると

 /usr/lib64/qt-.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/penguin/bin

となっていました。
次に、【-(ハイフン)】を付けてユーザを切り替えた場合のPATH環境変数を確認してみると

 /usr/lib64/qt-.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

管理コマンドが多く置かれている【/usr/sbin】ディレクトリのパスは一般ユーザにも配置されていますが、
環境変数に書かれている順番を見ると、ハイフンを付けていない場合(一般ユーザの設定を引き継いだまま)は【/usr/sbin】ディレクトリが後ろの方に書かれています。
PATH環境変数の優先順はそのまま記述されている順番(先に書かれている方が優先)になりますので、状況によってはコマンドの指定が思ったようにならない可能性も考えられます。

rootユーザに切り替わると言う事は、大体の場合、管理者権限のコマンドを実行する場合が多いと思いますので、一般ユーザからrootユーザに切り替わる場合は【-(ハイフン)】を付けて実行するのが良さそうですね。

SHARE

最新記事

無料相談する

INTERNOUS,inc. All rights reserved.