本文へスキップ
BecomeCoder

サーバーコース · 第3章 サーバーを安全に整える · レッスン14

sudoと権限 ― 管理者権限を安全に借りる

ブラウザで完結

導入

前のレッスンで「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 が使えます)

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

Linux シェル(シミュレート)

ブラウザ内でコマンドを試せる仮想シェルを読み込みます(本物のLinuxカーネルではなく学習用の再現です)。
スクロールして表示された時点でも自動で読み込まれます。

次のレッスンへ →