Ubuntuの「sudo」とroot権限:安全な管理者操作の基礎知識

プログラミング

はじめに

アプリのインストールができない…」「ファイルが保存できない…
そんな経験はないだろうか?

UbuntuのようなLinuxディストリビューションを扱っていると、しばしば「権限の壁」にぶつかる。
ログインしているのは自分自身なのに、なぜコマンドが拒否されるのか?

その鍵を握るのが「root権限」、そして「sudoコマンド」の存在だ。この記事では、sudoとは何か、そしてUbuntuで安全にroot権限を使う方法を掘り下げて解説する。

スポンサーリンク
スポンサーリンク

Ubuntuにおけるrootユーザーの立ち位置

Ubuntuはマルチユーザーの設計思想を持つシステムだ。
つまり、1台のコンピューターに複数のユーザーが共存する。
ここで大きな区分が登場する。それが「一般ユーザー」と「rootユーザー」だ。

一般ユーザーは、ホームディレクトリの範囲でファイルの操作が可能だが、システムファイルの変更やパッケージのインストールといった全体に影響する行為には制限がかかる。

一方、rootユーザーは“神”だ。アクセスできない場所はない。変更できない設定もない。
だがそれは裏を返せば「一歩間違えればすべてを壊しかねない存在」であることも意味する。

sudoという昇格システム

かつてのLinuxでは、rootに直接ログインして作業するのが当たり前だった。
しかし、それはセキュリティリスクを孕んでいた。

そこで登場したのがsudo(SuperUser DO)という仕組みだ。
これは、一時的に管理者権限を借りてコマンドを実行するためのツールである。

$ sudo id
[sudo] mizuno のパスワード:
uid=0(root) gid=0(root) groups=0(root)

このように、sudoをコマンドの前に付けることで、そのコマンドはrootとして実行される。

パスワードの入力を求められるが、それは自分のログインパスワード。
しかも、入力しても画面には何も表示されないため、入力されていないと錯覚しがちだ。だが安心してEnterを押してほしい。

誰でもsudoできるわけじゃない

Ubuntuでは、sudoが使えるユーザーは限定されている。
具体的には「sudoグループ」に属しているユーザーだけが、その権限を持つ。

インストール直後のユーザーはこのグループに自動的に登録されているが、他のユーザーには明示的な追加操作が必要になる。

この制限が、sudo コマンド 使い方を検索する人が多い理由のひとつでもある。

rootシェルを起動する方法

一部の作業では、何度もsudoを打つのが煩わしいというケースもある。
その場合は、以下のようなオプションを使って、rootシェルに“切り替える”ことが可能だ。

$ sudo -s    # 一時的なrootシェル
$ sudo -i    # rootログインシェル(環境変数もroot化)

この状態では、プロンプトが#に変わる。つまり、もう一般ユーザーではない。
この状態での操作は慎重を極めなければならない。

終わったら、忘れずにこう入力しよう。

$ exit

まとめ

Ubuntuの運用において、sudoとは切っても切れない存在だ。
root権限を直接操作するのではなく、一時的に借りるという発想が、システムの安全性と操作性を両立させている。

  • 一般ユーザーは基本的に制限された権限しか持たない
  • rootユーザーはすべての操作が可能だが、直接ログインは不可
  • sudoコマンドで一時的にrootとしての操作が可能
  • 誤操作での破壊を防ぐため、sudoは限定されたユーザーだけが使える
  • sudo -ssudo -iでのシェル切り替えには細心の注意を

これらを正しく理解すれば、「なぜコマンドが実行できないのか」といった初学者の悩みも解消されるはずだ。

コメント