Linux入門:コマンド操作のきほん
sudo - スーパーユーザーの力
sudo とは
sudoコマンドでスーパーユーザー権限を取得し、より強力な操作を行う方法を体験します。本レッスンでは、sudo の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。
なぜ重要か
sudo は「substitute user, do」または「super user do」の略で、一時的に別のユーザー(多くの場合 root)の権限でコマンドを実行する仕組みです。パッケージのインストール、システム設定の変更、サービスの再起動、ログの閲覧。本番サーバーで「管理者作業」と呼ばれるものはほぼすべて sudo 経由で行われます。本演習環境では sudo は使えませんが、現場では毎日触るコマンドなので、安全な使い方と落とし穴を理解しておきましょう。
root とは何か
Linux における root は UID 0 を持つ特別なユーザーで、システムのあらゆる操作が許可されています。ファイルの権限を無視して読み書きできる、他のユーザーのプロセスを停止できる、システム設定を書き換えられる。便利な反面、rm -rf / を一発で実行できる危険な存在でもあります。
なぜ root に直接ログインしないか
現代の Linux 運用では、root でログインせず、一般ユーザーで入って必要なときだけ sudo で権限昇格するのが鉄則です。理由は次の通りです。
- 誰が何をしたか
/var/log/auth.logでトレースできる - 操作のたびに権限昇格するので「うっかり破壊」を防げる
- root パスワード自体を共有せずに済む(権限剥奪も簡単)
sudo の動作モデル
sudo コマンド一発ごとに root 権限が貸し出され、終わると元の権限に戻ります。デフォルトでは 5 〜 15 分間はパスワード再入力が省略されます。
主要な使い方
ターミナル
sudo apt update # 単一コマンドを root で実行
sudo -i # root の対話シェルに入る
sudo -u www-data ls /var/www # 別ユーザーで実行
sudo !! # 直前のコマンドを sudo 付きで再実行sudo !! は「権限が足りなくて失敗したコマンドをそのまま sudo で再実行」する便利テクニックで、ターミナル作業で頻出します。
sudoers の設計
sudo を使えるユーザーは /etc/sudoers ファイル(または /etc/sudoers.d/ 配下)で定義されています。Debian 系では sudo グループに所属していること、Red Hat 系では wheel グループに所属していることが条件になるのが慣習です。
ターミナル
# Debian / Ubuntu の例
sudo usermod -aG sudo alice
# /etc/sudoers の典型的な行
# %sudo ALL=(ALL:ALL) ALL # sudo グループの全員が全コマンドを実行可能
# alice ALL=(ALL) NOPASSWD: /usr/bin/systemctl # パスワードなしで systemctl だけ許可NOPASSWD を使うと CI/CD や自動化スクリプトでパスワード入力を回避できますが、付与しすぎると root と同等のリスクになります。
sudoを編集するときは必ずsudo visudoを使ってください。visudoは保存前に構文チェックしてくれます。直接エディタで/etc/sudoersを編集して文法エラーがあると、二度と sudo できなくなり復旧に再起動が必要になります。
演習環境では使えない
本演習の Cloud Functions ベース実行環境には root も sudo もありません。sudo apt install xxx のような操作はすべて開発端末か本番サーバーで行います。サンプルとして「形だけ」見るなら以下のような感じです。
ターミナル
# 本番サーバーでの典型操作(演習環境では sudo not found)
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
sudo journalctl -u nginx -n 50安全に使うためのコツ
「root シェルに入って 5 個も 10 個もコマンドを打つ」のではなく、「必要な 1 行だけ sudo を付ける」のが基本です。ミスの被害範囲を最小化できます。
- 削除系コマンドは必ず 1 段階確認する(
lsで対象を見てからrm) sudo -iで root シェルに入ったら作業が終わり次第exit- 環境変数や PATH は sudo 経由だと初期化される(
sudo envで確認) - 本番サーバーでの sudo 履歴は
/var/log/auth.logに残る前提で行動する
まとめ
- sudo は一時的に root 権限を借りる仕組み
- root 直接ログインは避け、sudo 経由が本番の作法
- sudoers / visudo で許可ユーザーを管理
- NOPASSWD は便利だが乱用しない
- 演習環境では使えないので、本番に出る前に手元 VM で慣れておく
次のレッスン
次は 実行権限とスクリプト で、sudoコマンドでスーパーユーザー権限を取得し、より強力な操作を行う方法を体験します を学びます。
事前確認 — 進む前に次の 3 つができることを確認しましょう。
- sudo と root の要点を自分の言葉で説明できる
- このレッスンの最小コード (または操作手順) を見ずに書ける
- 練習問題やクイズで間違えた箇所を読み直して理解した
理解度チェック (30 秒)
Q. sudo と root とは何か、1 文で説明してください。
A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。
関連レッスン