導入
前のレッスンで「root への直接ログインは禁止」しました。では、サービスの再起動やソフトのインストールなど、管理者にしかできない作業はどうやるのでしょうか。答えは「必要な1コマンドだけ、一時的に権限を借りる」——それが sudo です。
説明
Linux には、あらゆる操作を許された特別なユーザー root(管理者)と、それ以外の一般ユーザーがいます。一般ユーザーのままでは、システムに影響する操作(ソフトの追加・サービスの操作・設定変更など)は基本的にできません。
管理者権限を借りる方法は主に2つです。
su(switch user) … 別のユーザー(既定は root)に切り替える。切り替えたあとは、ずっと root のまま作業してしまうsudo(superuser do) … そのコマンド1つだけを root として実行し、終わればすぐ元のユーザーに戻る
flowchart LR
A["一般ユーザー user"] -->|"su -<br/>ずっと root に切り替え"| B["root として作業し続ける"]
A -->|"sudo コマンド<br/>その1行だけ root"| C["実行後は<br/>すぐ user に戻る"]
現場で推奨されるのは断然 sudo です。「今この瞬間、なぜ管理者権限が必要だったか」が1コマンドごとに記録され、うっかり root のまま余計な操作をしてしまう事故も防げます。
誰でも sudo を使えるわけではなく、sudo グループに所属しているユーザーだけが許可されます。自分がそのグループに入っているかは id で確認できます。
id
uid=1000(user) gid=1000(user) groups=1000(user),27(sudo),100(users)
groups の中に 27(sudo) があれば、sudo を使う資格があります。実際に管理者権限が必要なコマンドには、頭に sudo を付けるだけです。
sudo apt update
whoami と sudo whoami を見比べると、権限の借り方の違いがよく分かります。
whoami
sudo whoami
whoami は user、sudo whoami はそのコマンドだけ root として実行されるので root と返ります。しかしその後にもう一度 whoami を打つと、また user に戻っています——その1行だけ昇格する sudo の性質そのものです。
「必要なときに、必要な操作だけ、権限を借りる」——これを 最小権限の原則 と呼びます。ずっと管理者のまま作業すると、タイプミス1つでシステムを壊しかねません。
sudoは、安全に強い権限を使うための「一時的な鍵の貸し出し」の仕組みです。
やってみよう
id を打って、groups に 27(sudo) が含まれている(= sudo が使える)ことを確認しましょう。whoami と sudo whoami を続けて打ち、返ってくるユーザー名が user → root → (もう一度 whoami で)user と変わることを見てください。sudo apt update のように、管理者権限が必要な操作には sudo を付ける形も試しましょう。
演習
自分が sudo を使えるユーザーグループに所属しているかどうかを確認してください。
ヒント1を見る
ユーザーの UID・GID・所属グループをまとめて見せてくれるコマンドです。
ヒント2を見る
id(出力の groups= に 27(sudo) があれば sudo が使えます)