はじめに
「アプリのインストールができない…」「ファイルが保存できない…」
そんな経験はないだろうか?
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 -s
やsudo -i
でのシェル切り替えには細心の注意を
これらを正しく理解すれば、「なぜコマンドが実行できないのか」といった初学者の悩みも解消されるはずだ。
コメント