2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Linux入門】sudoを完全に理解する。仕組み・使い方。そして3つの責任

2
Last updated at Posted at 2026-06-11

はじめに

Linuxを触り始めると、すぐにこの壁にぶつかります。

$ rm -rf /var/log/app/
rm: cannot remove '/var/log/app/': Permission denied

調べると sudo をつければ解決、と出てくる。でも「これ何? なんで動くの? つけていいの?」という疑問は残りがち。

この記事では sudo の仕組みを基礎から解説します。

sudoとは

sudosuperuser do の略。通常ユーザーでは触れないファイルやコマンドを、一時的に root 権限を借りて実行する仕組みです。

「root に切り替える」のではなく「そのコマンドだけ root として動かす」のがポイントです。

厳密には、sudo は rootとして実行するとは限りません。
sudoは任意のユーザーとして実行できるコマンドです。(デフォルトがrootです。)

なぜ root のまま作業しないのか

「最初から root でいいじゃないか」と思うかもしれませんが、root 常用には 2 つのリスクがあります。

ミスが致命的になる。 一般ユーザーなら Permission denied で止まる操作も、root なら全部通ります。

root@server:~# rm -rf / tmp/work   # スペース一個で / が消える

侵害されたときの被害が最大になる。 常に root で動くシェルやプロセスは、不正アクセス時に全権限を渡すことになります。

sudo の設計思想は「必要なときだけ、必要な権限を使う」(最小権限の原則)です。

sudo を初めて使うと表示される「3つの責任」

sudo を初めて実行すると、こんなメッセージが表示されます。

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

訳すとこうなります。

  1. 他者のプライバシーを尊重せよ — root は他ユーザーのファイルも読み書きできます。見られる立場の人を意識すること。
  2. 打つ前に考えよ — 強力なコマンドは取り消せないものが多い。rm -rfdd の前に一呼吸おきましょう。
  3. 大きな力には大きな責任が伴う — スパイダーマンの名言ですが、Linux の世界でも同じです。

このメッセージは /etc/sudoers の設定で非表示にもできますが、初心者には大切な心得です。

sudo が使えるのは誰か

/etc/sudoers ファイルに登録されたユーザーだけです。編集には必ず visudo を使います(構文エラーで sudo が壊れるのを防ぐため)。

$ sudo visudo
# root はすべての操作が可能
root    ALL=(ALL:ALL) ALL

# sudo グループのメンバーはすべて可能(Ubuntu のデフォルト)
%sudo   ALL=(ALL:ALL) ALL

# 特定ユーザーに特定コマンドだけ許可する例
yamada  ALL=(ALL) /usr/bin/systemctl restart nginx
# ユーザーを sudo グループに追加する
$ sudo usermod -aG sudo username

基本的な使い方

# 単発のコマンドを root で実行
$ sudo apt update
$ sudo systemctl restart nginx

# 一時的に root シェルを起動(複数操作をまとめてやりたいとき)
$ sudo -i        # root の環境変数を使う
$ sudo -s        # 現在の環境変数を引き継ぐ

# 別ユーザーとして実行
$ sudo -u www-data php artisan queue:work

root シェルを使ったら、必ず exit で抜けましょう

ログに全操作が残る

sudo のもうひとつの重要な特徴が、全操作が /var/log/auth.log に記録されることです。

$ sudo grep sudo /var/log/auth.log

Jun  9 14:23:11 server sudo: yamada : TTY=pts/0 ; PWD=/home/yamada ;
  USER=root ; COMMAND=/bin/rm -rf /var/log/app/

誰が・いつ・何をしたか追跡できるため、障害調査やセキュリティ監査に役立ちます。

よくあるハマりポイント

sudo でも Permission denied になる → sudoers に登録されていないか、そのコマンドが許可されていません。

sudo: command not found になる → sudo ではセキュリティのために secure_path が適用され、PATH が制限されることがあります。フルパスか -E オプションで対処できます。

$ sudo /usr/local/bin/node server.js   # フルパス
$ sudo -E node server.js               # 環境変数を引き継ぐ

-E は便利ですが、環境変数をそのまま渡すためセキュリティ的には非推奨な場面もあります。使用時には現場のルールに従うなど、注意が必要です。

パスワードを求められない → sudoers に NOPASSWD が設定されています(CI/CD 環境でよく使われます)。

やってはいけない使い方

# ❌ 未確認スクリプトを curl でそのまま実行
$ curl https://example.com/install.sh | sudo bash

# ✅ ダウンロードして中身を確認してから実行
$ curl -O https://example.com/install.sh && cat install.sh
$ sudo bash install.sh
# ❌ chmod 777 の乱用
$ sudo chmod -R 777 /var/www/html

# ✅ 必要な権限だけ設定する
$ sudo chown -R www-data:www-data /var/www/html
$ sudo chmod -R 755 /var/www/html

まとめ

項目 内容
sudo の意味 superuser do — root 権限を一時的に借りる
使える条件 /etc/sudoers に登録されていること
3つの責任 プライバシー尊重・打つ前に考える・大きな力には責任が伴う
ログ sudo のログはシステムログに記録される(/var/log/auth.log や journalctl)
危険な使い方 未確認スクリプトの実行、chmod 777 の乱用

sudo は「魔法の呪文」ではなく、責任を伴う権限の借用です。「なぜこのコマンドに root が必要なのか」を意識する習慣が、Linux を安全に使いこなす第一歩になります。

参考

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?