Linux Mint を徹底的に使いこなす
Stage 2 01_02
sudo とは何か Linuxの管理者権限について
Stage 2 01_02
sudo とは何か Linuxの管理者権限について
Linux Mint で「コマンド」を使い始めると、必ず目にするのが 【sudo】 という管理者権限でのコマンドの実行だ。しかし、「なぜ毎回これを付けなければならないのか」「そもそも何をしているコマンドなのか」を理解しないまま使ってきた。
そこで、sudo の仕組みと、その背景にある「管理者権限」の考え方について掘り下げてみた。
スポンサー リンク
目 次
1. sudo とは何か
sudo は "superuser do"(スーパーユーザーとして実行する)の略で、
通常は一般ユーザーの権限で操作している状態から、そのコマンド一回だけ管理者(root)の権限を借りて実行するための仕組みです。
システムのパッケージ一覧を更新する場合の例。
sudo apt update
📌 ポイント:
「ログイン自体をroot に切り替える」わけではなく、あくまで「このコマンドだけ、特別に強い権限で実行してよいか」を都度確認する仕組みになっている点です。
「ログイン自体をroot に切り替える」わけではなく、あくまで「このコマンドだけ、特別に強い権限で実行してよいか」を都度確認する仕組みになっている点です。
🧰 sudo の有効範囲・時間:
• デフォルトの有効時間: パスワード入力後、15分間。
• 15分以内でも、ターミナル(端末)を閉じると、その有効範囲(キャッシュ)はリセットされる。
• デフォルトの有効時間: パスワード入力後、15分間。
• 15分以内でも、ターミナル(端末)を閉じると、その有効範囲(キャッシュ)はリセットされる。
2. なぜ Linux では root で常時作業しないのか
Linux には「root」と呼ばれる、システムに対してあらゆる操作が可能な特別なユーザーが存在する。
最初から root としてログインして作業すれば sudo は不要ではと思われるが、これには次の2つの理由がある。
• 誤操作のリスク:
root権限では、重要なシステムファイルを誤って削除・変更してしまうと、確認なしにそのまま実行されてしまう。
root権限では、重要なシステムファイルを誤って削除・変更してしまうと、確認なしにそのまま実行されてしまう。
• セキュリティ上のリスク:
常時 root で操作していると、悪意のあるプログラムやスクリプトを誤って実行した場合、被害がシステム全体に及んでしまう可能性がある。
常時 root で操作していると、悪意のあるプログラムやスクリプトを誤って実行した場合、被害がシステム全体に及んでしまう可能性がある。
これは「最小権限の原則」という考え方で、背景に「普段は必要最小限の権限だけで作業し、強い権限が本当に必要な瞬間だけ、一時的にそれを借りる」という設計思想がある。
3. Windows での管理者権限
Windows にも、UAC(User Account Control / ユーザーアカウント制御)という機能があり、システムに影響を与えるような操作(ソフトウェアのインストール、システム設定の変更など)を行うと、画面に次のようなポップアップが表示される。
ここで「はい」を選択すると、そのプログラムだけが一時的に管理者権限で実行される。
このように Windows でも、「常に管理者権限で動いているわけではなく、必要な瞬間だけ権限を昇格させる」という点では、Linux の考え方と共通している。
🧰 Windows の「ターミナル(管理者)」は、ウィンドウ全体(セッション単位)を管理者権限で最初から開く方法で、Linux の sudo と同じではない。
「この不明な発行元からのアプリが・・・」を止める方法:
4. sudo su や sudo -i との違いを理解する
sudo [オプション] コマンド
オプション:
• -u [ユーザー名]:コマンドを実行するユーザーやユーザーIDを指定(省略時はroot)。
• -g [グループ名]:コマンドを実行するグループを指定します。
• -i:root(または指定ユーザー)のログインシェルに切り替えて実行します。
• -s:シェルを起動してコマンドを実行します。
• -v:パスワードの有効期限(認証キャッシュ)を延長・更新します。
• -k:パスワードの認証キャッシュを破棄(クリア)します。
• -l:現在実行可能なsudoコマンドの一覧や権限を表示します。
• -S:パスワードを端末ではなく標準入力から受け取ります。
• -n:パスワード入力を求められた際に、入力をスキップしてエラーにします(非対話型処理向け)。
• -u [ユーザー名]:コマンドを実行するユーザーやユーザーIDを指定(省略時はroot)。
• -g [グループ名]:コマンドを実行するグループを指定します。
• -i:root(または指定ユーザー)のログインシェルに切り替えて実行します。
• -s:シェルを起動してコマンドを実行します。
• -v:パスワードの有効期限(認証キャッシュ)を延長・更新します。
• -k:パスワードの認証キャッシュを破棄(クリア)します。
• -l:現在実行可能なsudoコマンドの一覧や権限を表示します。
• -S:パスワードを端末ではなく標準入力から受け取ります。
• -n:パスワード入力を求められた際に、入力をスキップしてエラーにします(非対話型処理向け)。
rootユーザー(管理者)に切り替えるコマンド。
su - または sudo su - または sudo -i
sudo コマンド が「そのコマンドだけ」一時的に権限を借りるのに対し、sudo su や sudo -i は root ユーザーとしてログインし直す操作です。
元に戻すコマンド。
exit
root のシェル(操作画面)に入ったまま作業を続けると、前述した「常時rootで作業するリスク」がそのまま当てはまってしまうため、必要な作業が終わったらすぐに exit で抜けることをおすすめします。
5. sudo でのパスワード入力を不要にする設定
/etc/sudoersファイルに、sudoの管理者権限などが記述されている。
この/etc/sudoersファイルを編集するための専用コマンド 【visudo】 が用意されており、ファイルをロックして文法チェックも行ってくれる。
このコマンドを使って、mint ユーザーの権限を登録する。
sudo visudo
登録内容。
ALL=(ALL) NOPASSWD: ALL
これで、sudoコマンドでのパスワード入力が不要になる。
以上。
(2026.09.22)
スポンサー リンク










