PR

su と sudo の違い

su と sudo の違いのかんたんな説明です。

スポンサーリンク

管理者権限が必要な操作の実行

システムに影響をおよぼすような重要な操作を行うには、管理者権限が必要です。一般に Linux で管理者権限を持っているのは「root」 (るーと) という特別なユーザです。root 権限が必要な操作をする際は、主に次の選択肢が考えられます:

  • root でログインして操作をする
  • 一般ユーザが su コマンドで root として操作をする
  • 一般ユーザが sudo コマンドで root として操作をする

root でログインして行う操作は、すべて管理者権限で実行されてしまうため、root でログインせずに一般ユーザでログインし、必要な操作に限り sudo コマンドや su コマンドを伴って root 権限が必要な操作を行うことが一般的です。

sudo

sudo (SuperUser DO) は、「コマンドを実行するユーザを指定して実行」します。主な特徴は、次のとおりです:

  • コマンドを実行する際は、「ログイン ユーザ (=自分) のパスワード」が必要
  • 実行したコマンド等は、記録される
  • sudo を実行できるユーザは、 root が個別に指定する

sudo コマンドがインストールされているか確認のためにバージョン情報をする:

$ sudo -V
Sudo バージョン 1.9.5p2
sudoers ポリシープラグイン  バージョン 1.9.5p2
sudoers ファイル文法バージョン 48
Sudoers I/O plugin version 1.9.5p2
Sudoers audit plugin version 1.9.5p2

sudo の動作例:

## 私は誰か → seeck (ログイン ユーザ)
$ whoami
seeck

## 私は誰か → root (root として実行された)
$ sudo whoami
[sudo] seeck のパスワード:***** ← 自分のパスワードを入力
root

## 私は誰か → seeck (元のユーザに戻った)
$ whoami
seeck

しかし、すべての環境で常に利用可能ではなく、例えば、操作例としてインストールした Debian 11 では、 sudo コマンドがインストールされておらず、かわりに su コマンドが利用可能でした。

su

su (Switch User) コマンドは、「指定したユーザに切り替え」ます。主な特徴は、次のとおりです:

  • コマンドを実行する際は、「指定したユーザ (=他人) のパスワード」が必要
  • 実行したコマンド等は、記録されない
  • su を実行できるユーザは、細かく設定できない

su コマンドがインストールされているかの確認のためにバージョン情報を表示する:

$ su -V
su from util-linux 2.36.1

su の動作例:

## 私は誰か → seeck (ログイン ユーザ)
$ whoami
seeck

## root でログインする
## (ログイン ユーザから root に切り替える)
$ su
パスワード:***** ← この場合 root パスワードを入力

## 私は誰か → root
# whoami
root

## root からログアウトする
## (ログアウトしないと root のまま)
# exit
exit

## 私は誰か → seeck (元のユーザに戻った)
$ whoami
seeck

su と sudo

以上のように su と sudo を見比べると、sudo を採用し、su を禁止するシステムが多いことが理解できます。

※sudo、 su、 あるいは同等の機能を持つほかの仕組みがない環境では、 root でログインして操作を行います

関連

sudo ユーザに追加する方法については、次のサポート記事をご参照ください:

参考文献等

注意

  • かんたんに説明しているため、詳細は実際と異なる場合があります

スポンサードリンク

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