「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の違い
| 項目 | sudo | root直接ログイン |
|---|---|---|
| セキュリティ | ◎ 高い | △ リスクあり |
| 操作ログ | ◎ /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 -sやsudo suでrootシェルを取得したら、作業後は必ずexitで戻る- sudo権限を持つユーザーは必要最小限にする
まとめ
- root = 最高権限ユーザー。直接使用はリスクが高いため通常は避ける
- sudo = 特定コマンドのみ管理者権限で実行。ログが残り安全
- Ubuntu では root の直接ログインを無効化し、sudo 経由が標準
- sudoers の編集は必ず
visudoを使う
関連記事
📋 Linux入門チートシート完全版で全コマンドを一気に復習できます。



コメント