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 ユーザに追加する方法については、次のサポート記事をご参照ください:
参考文献等
- 4.2. sudo コマンド Red Hat Enterprise Linux 6 | Red Hat Customer Portal
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/deployment_guide/sect-deployment_guide-gaining_privileges-the_sudo_command - su (Unix) – Wikipedia
https://ja.wikipedia.org/wiki/Su_(Unix) - su コマンド – IBM Documentation
https://www.ibm.com/docs/ja/aix/7.2?topic=s-su-command - suコマンドとは – 意味をわかりやすく – IT用語辞典 e-Words
https://e-words.jp/w/su%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89.html - sudo – Wikipedia
https://ja.wikipedia.org/wiki/Sudo - sudoとは – 意味をわかりやすく – IT用語辞典 e-Words
https://e-words.jp/w/sudo.html - sudoの基本 | 管理ガイド | SUSE Linux Enterprise Server 15 SP2
https://documentation.suse.com/ja-jp/sles/15-SP2/html/SLES-all/cha-adm-sudo.html - 第410回 あなたの人生を少しだけ豊かにするsudoの使い方 | gihyo.jp
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0410 - 本当は怖いsudoコマンド: NECセキュリティブログ | NEC
https://jpn.nec.com/cybersecurity/blog/201023/index.html
注意
- かんたんに説明しているため、詳細は実際と異なる場合があります
スポンサードリンク