Linuxコマンドのsudoとsuとsudo suとsudo su -コマンドの違いを分かりやすく

Linuxコマンドのsudoとsuとsudo suとsudo su -コマンドの違いを分かりやすく

suコマンド(switch user)はユーザを切り替えるコマンドです。

これでec3-userというユーザが存在していればユーザを切り替えることができます。

suコマンドでユーザを省略するとrootを指定したことになります。

パスワードを入力します。rootのパスワードを知らない場合、rootユーザにはスイッチできません。suコマンドでrootユーザに変更するにはパスワードが必要になります。

sudoコマンドで指定コマンドをroot権限で実行する

rootユーザのパスワードを知らなくてもroot権限でコマンドを実行したいがあります。

sudoコマンドを使えばroot権限で実行することができます。(visudoで権限を与えておく必要があります)

これでroot権限でコマンドを実行することができます。sudo vi hoge.txtとするとhoge.txtがrootで作成されます。

rootユーザに変更する訳ではなくroot(指定したユーザ)権限でコマンドが実行できるようになります。

sudo suをわかりやすく

sudoコマンドはroot権限で指定コマンドを実行します。suコマンドはユーザを変更します。

sudo suコマンドはroot権限でsuコマンドを実行します。(sudo su rootと同じ)

これでrootユーザのパスワードを知らなくてもrootユーザに変更することが出来てしまいます。

sudo suとsudo su -の違い

sudo suとsudo su -はほぼ同じですが違います。

何が違うかというとコマンド実行後のホームディレクトリが変わります。

ハイフン(-)をつけるとホームディレクトリがrootのホームディレクトリに変わります。

環境変数(printenv)やシェル変数(set)などもrootの変数に変わります。

コマンド 環境変数
sudo su(sudo -s) かわらない
sudo su -(sudo -i) かわる
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA