Linux入門

sudoとrootの違い・安全な使い方

Linux入門
記事内に広告が含まれています。

「sudo ってよく見るけど何のため?」「root ユーザーって直接使っていいの?」Linuxのセキュリティを理解する上で必須の概念を丁寧に解説します。

rootユーザーとは?

root は Linux における最高権限のユーザーです。UID(ユーザーID)が 0 で、システム上のすべてのファイルの読み書き・削除・実行が可能です。

Windowsの「管理者」に相当しますが、Linuxの root はさらに強力で、間違った操作でシステム全体を破壊することも可能です。そのため通常の作業では root を直接使わないのが鉄則です。

sudoとは?

sudo(superuser do)は、一般ユーザーが特定のコマンドだけを管理者権限で実行する仕組みです。Ubuntu では root への直接ログインを無効にし、sudo 経由での権限昇格を推奨しています。

# sudoを使って管理者権限でコマンドを実行
$ sudo apt update

# 自分のパスワードを入力(rootのパスワードではない)
[sudo] password for user:

# sudoの実行履歴確認
$ sudo cat /var/log/auth.log | grep sudo

sudoとrootの違い

項目sudoroot直接ログイン
セキュリティ◎ 高い△ リスクあり
操作ログ◎ /var/log/auth.logに記録△ 追跡が難しい
誤操作のリスク○ 都度確認が入る✗ 常に全権限
推奨度◎ 本番環境の標準✗ 通常は無効化

sudoの使い方

# 単一コマンドをsudoで実行
$ sudo systemctl restart nginx

# sudoでシェルを起動(rootシェル。使い終わったらexitすること)
$ sudo -s

# 別ユーザーとして実行(-u オプション)
$ sudo -u www-data ls /var/www/html

# sudoの権限を事前認証(5分間有効)
$ sudo -v

sudoersの設定(/etc/sudoers)

どのユーザーが sudo を使えるかは /etc/sudoers で管理されます。直接編集せず、必ず visudo コマンドを使います(構文エラー時に保存できない安全機能付き)。

# sudoersを安全に編集
$ sudo visudo

# 特定ユーザーにsudo権限を付与(sudoグループに追加するのが簡単)
$ sudo usermod -aG sudo username

# 現在のsudo権限を確認
$ sudo -l

セキュリティのベストプラクティス

  • 本番サーバーでは root への直接SSH接続を禁止する(PermitRootLogin no
  • sudo の使用はログに残るため、操作の追跡が可能
  • sudo -ssudo su でrootシェルを取得したら、作業後は必ず exit で戻る
  • sudo権限を持つユーザーは必要最小限にする

まとめ

  • root = 最高権限ユーザー。直接使用はリスクが高いため通常は避ける
  • sudo = 特定コマンドのみ管理者権限で実行。ログが残り安全
  • Ubuntu では root の直接ログインを無効化し、sudo 経由が標準
  • sudoers の編集は必ず visudo を使う

関連記事

📋 Linux入門チートシート完全版で全コマンドを一気に復習できます。

コメント

タイトルとURLをコピーしました