0
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コマンド基礎講座【番外編C】sudoコマンドを正しく理解しよう!rootとの違い・設定・注意点

0
Posted at

1. 👋 はじめに

sudo って頭につけたらなんでもできるの?」
「rootユーザーとsudoって何が違うの?」
sudo を間違えて使って大変なことになりそう…」

そんな疑問や不安を解消します!sudo は正しく理解して使えば強力な味方ですが、使い方を誤ると取り返しのつかないことになるコマンドでもあります。しっかり理解しましょう💪

この記事を読めば:

  • ✅ rootユーザーとsudoの違いがわかる
  • ✅ sudoの仕組みと設定方法がわかる
  • ✅ 安全な使い方がわかる

2. 👑 rootユーザーとは?

Linuxのユーザー階層

👑 rootユーザー(スーパーユーザー)
   └─ システム上のすべての操作が可能
   └─ あらゆるファイルの読み書き・削除が可能
   └─ どんなコマンドも実行できる
   └─ UID(ユーザーID)= 0

👤 一般ユーザー(alice・bobなど)
   └─ 自分のホームディレクトリの操作が中心
   └─ システムファイルへのアクセスは制限される
   └─ UID = 1000以上(環境による)

rootはなぜ危険?

root で操作すると…

✅ できること(強力!)
  └─ システムの設定を変更できる
  └─ 全ユーザーのファイルを操作できる
  └─ サービスの起動・停止ができる

⚠️ リスク
  └─ 間違ったコマンドで OS を破壊できる
  └─ 悪意あるスクリプトが全権限で動く
  └─ ミス1つでシステム全体に影響する

💀 最悪の例
  rm -rf /   # OSを完全に破壊
  chmod 777 /etc/passwd  # 認証情報が誰でも書き換え可能に

だからこそ、普段はrootで作業しないのが鉄則です!


3. 🔐 sudoとは?

sudoSubstitute User Do)は、一時的に管理者権限でコマンドを実行する仕組みです。

一般ユーザー(alice)
    │
    │ sudo コマンド
    ↓
パスワード確認 🔑
    │
    │ sudoers に登録されている?
    ↓
YES → 管理者権限でコマンドを1つだけ実行 ✅
NO  → Permission denied ❌

rootに切り替えるのとの違い

sudo su - / rootに切り替え
権限の範囲 1コマンドだけ 以降すべての操作
ログ記録 される ✅ されにくい
パスワード 自分のパスワード rootのパスワード
リスク 低い 高い
💡 sudo を使うべき理由
  ① 必要なときだけ権限を使う(最小権限の原則)
  ② 実行したコマンドがログに残る(監査できる)
  ③ rootパスワードを共有しなくていい

4. ⚙️ sudoの基本的な使い方

基本構文

# 一般的な使い方
sudo <コマンド>

# 例
sudo apt update              # パッケージ一覧を更新
sudo apt install nginx       # nginxをインストール
sudo systemctl restart nginx # サービスを再起動
sudo nano /etc/hosts         # システムファイルを編集

パスワードの入力

sudo apt update
# [sudo] password for alice:  ← 自分のパスワードを入力
# ※ 入力中は何も表示されない(セキュリティのため)

# 一定時間(デフォルト15分)は再入力不要
sudo apt upgrade  # パスワード不要(タイムアウト前なら)

よく使う sudo コマンド

パッケージ管理(Ubuntu/Debian):

コマンド 説明
sudo apt update パッケージ情報を更新
sudo apt install <パッケージ> パッケージをインストール
sudo apt remove <パッケージ> パッケージをアンインストール
sudo apt upgrade 全パッケージを最新に更新

サービス管理:

コマンド 説明
sudo systemctl start nginx サービスを起動
sudo systemctl stop nginx サービスを停止
sudo systemctl restart nginx サービスを再起動
sudo systemctl status nginx サービスの状態を確認

ファイル操作(一般ユーザーでは触れない場所):

コマンド 説明
sudo cp config.txt /etc/myapp/ システム領域にファイルをコピー
sudo chown root:root /etc/myapp/config.txt オーナーをrootに変更
sudo chmod 644 /etc/myapp/config.txt パーミッションを設定

rootシェルへの切り替え(本当に必要なときだけ!):

コマンド 説明
sudo -i rootのログインシェルに切り替え
sudo su - 同上(別の書き方)
exit rootから一般ユーザーに戻る

5. 📋 sudoersの設定

sudoersは「誰がどのコマンドをsudoで実行できるか」を定義する設定ファイルです。

sudoersファイルの場所

# ファイルの場所
/etc/sudoers

# ⚠️ 直接編集してはいけない!必ず visudo コマンドを使う
sudo visudo   # 文法チェック付きで安全に編集できる

sudoersの基本構文

# 書式
ユーザー名  ホスト名=(実行ユーザー)  コマンド

# 例:alice が全コマンドを sudo で実行できる
alice  ALL=(ALL)  ALL

# 例:aliceがパスワードなしで sudo できる(⚠️ 注意して使う)
alice  ALL=(ALL)  NOPASSWD: ALL

# 例:aliceが特定のコマンドだけ sudo できる
alice  ALL=(ALL)  /usr/bin/apt, /usr/sbin/service

sudoグループへの追加(Ubuntu/Debianの場合)

Ubuntuでは sudo グループに所属しているユーザーが sudo を使えます。

# ユーザーをsudoグループに追加
sudo usermod -aG sudo alice

# 確認
groups alice
# alice : alice sudo

# ⚠️ 一度ログアウトして再ログインしないと反映されない

/etc/sudoers.d/ でユーザーごとに設定

# /etc/sudoers.d/ に個別ファイルを作る方が管理しやすい
sudo visudo -f /etc/sudoers.d/alice

# 内容例
alice  ALL=(ALL)  NOPASSWD: /usr/bin/systemctl restart nginx
# aliceはnginxの再起動だけパスワードなしでできる

6. 📝 sudoのログを確認する

sudoを使った操作はログに記録されます。セキュリティ上とても重要です。

# Ubuntuでのsudoログ確認
sudo cat /var/log/auth.log | grep sudo

# 出力例
# Mar 17 10:00:01 server sudo: alice : TTY=pts/0 ; PWD=/home/alice ;
#   USER=root ; COMMAND=/usr/bin/apt update

# ログの見方
# 日時・サーバー名・ユーザー・実行場所・実行コマンドが記録される

7. ⚠️ sudoを使うときの注意点

① インターネットからコピーしたコマンドをそのまま実行しない

# ❌ 危険な例
# 「このコマンドを実行してください」とネットに書いてあった
sudo curl https://suspicious-site.com/install.sh | bash
# → 悪意あるスクリプトがroot権限で実行される可能性!

# ✅ 安全な手順
# 1. スクリプトの中身を確認する
curl https://suspicious-site.com/install.sh > install.sh
cat install.sh   # 内容を確認!
# 2. 問題なければ実行
bash install.sh

② sudo rm -rf は特に危険

# ❌ 絶対にやってはいけない
sudo rm -rf /          # OS全体を削除
sudo rm -rf /etc       # 設定ファイルをすべて削除
sudo rm -rf ~          # ホームディレクトリを削除

# ✅ 削除前には必ず確認
ls /削除したいディレクトリ  # 中身を確認
sudo rm -ri /削除したいディレクトリ  # -i で確認しながら削除

③ NOPASSWD の乱用に注意

# ❌ 危険な設定(すべてのコマンドをパスワードなしで実行)
alice  ALL=(ALL)  NOPASSWD: ALL

# ✅ 必要なコマンドだけに限定する
alice  ALL=(ALL)  NOPASSWD: /usr/bin/systemctl restart nginx
# nginxの再起動だけパスワードなしでOK

④ sudo -i(rootシェル)は必要なときだけ

# ❌ rootシェルに入りっぱなしにしない
sudo -i
# ... 長時間rootで作業 ...
# うっかり rm -rf してしまうリスク!

# ✅ 1コマンドだけsudoを使う
sudo systemctl restart nginx
sudo nano /etc/hosts
# 作業が終わったら一般ユーザーに戻る

⑤ sudo の有効時間に注意

# sudoのタイムアウトはデフォルト15分
# 席を離れるときはタイムアウトを強制する

# sudoキャッシュをクリア(タイムアウトをリセット)
sudo -k

# 次のsudoでは再度パスワードが必要になる

8. 🔍 sudo と su の違い

混乱しやすい su コマンドとの違いも整理しておきましょう。

# sudo:1コマンドだけroot権限で実行
sudo apt update

# su:別のユーザーに切り替える
su -         # rootに切り替え(rootのパスワードが必要)
su - alice   # aliceに切り替え(aliceのパスワードが必要)
exit         # 元のユーザーに戻る

# sudo su -:sudoでrootに切り替え(自分のパスワードでOK)
sudo su -    # sudoers に登録されていれば使える
コマンド 何をする パスワード
sudo <コマンド> 1コマンドだけroot権限 自分のパスワード
sudo -i rootシェルに入る 自分のパスワード
su - rootに切り替え rootのパスワード
su - alice aliceに切り替え aliceのパスワード

9. 📋 まとめ早見表

基本操作

コマンド 説明 注意点
sudo <コマンド> 管理者権限で1コマンド実行 パスワードが必要(15分キャッシュ)
sudo -i rootシェルに入る 作業後は必ず exit で戻る
sudo -k sudoキャッシュをクリア 席を離れる前に実行すると安全
sudo -l 自分が使えるsudoコマンドを確認 権限の確認に便利

sudoers の設定

コマンド 説明
sudo visudo sudoersを安全に編集(直接編集はNG!)
sudo visudo -f /etc/sudoers.d/alice ユーザーごとの個別ファイルで設定
sudo usermod -aG sudo <ユーザー名> ユーザーをsudoグループに追加

ログ・確認

コマンド 説明
sudo cat /var/log/auth.log | grep sudo sudoの操作ログを確認
groups <ユーザー名> ユーザーの所属グループを確認

10. 🎯 まとめ

概念 ポイント
👑 root システム上で最強の権限を持つユーザー
🔐 sudo 一時的に管理者権限で1コマンドだけ実行する仕組み
📋 sudoers 誰がどのコマンドをsudoできるか定義するファイル
✏️ visudo sudoersを安全に編集するコマンド(直接編集はNG!)
📝 ログ sudoの操作はすべて /var/log/auth.log に記録される
⚠️ 注意点 不審なスクリプトをsudoで実行しない・NOPASSWDを乱用しない

「必要なときだけ・必要な権限だけ」 がsudoを使う際の鉄則です。rootになりっぱなしにせず、一般ユーザーで作業して、必要なときだけsudoを使う習慣をつけましょう🔒

💬 質問や感想があれば、コメント欄でお気軽にどうぞ!
👍 役に立ったら、いいね&ストックをお願いします!
🎓 ここまで読んでくださって、本当にありがとうございました!


🔗 シリーズ記事

  • 【第一回】基本操作 → ファイル操作・検索・エスケープ
  • 【第二回】パーミッション・ユーザー管理・テキスト処理
  • 【第三回】シェルスクリプト入門
  • 【番外編A】正規表現とsed・awk入門
  • 【番外編B】パスを通すとは?PATH環境変数を完全解説
  • 【番外編C】sudoコマンドを正しく理解しよう(この記事)
0
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
0
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?