【完全初心者向け】Linuxのrootユーザとは?

rootユーザとは
  • このエントリーをはてなブックマークに追加
  • Pocket

LinuxのrootユーザとはLinuxの管理者のことだ。

rootは根っこのことで、根本や根元という意味がある。LinuxのrootユーザはそのLinuxシステムを好きに編集することができる最高権限をもったユーザだ。

このページではrootユーザについて初心者の方向けにご紹介しよう。

Linuxのrootユーザとは?

rootユーザ = 管理者

「root」ユーザはLinuxやUnix Like Systemにおける「管理者権限」だ。

Windowsでいうところのadministrator(アドミニストレータ)と同じ意味になる。

セキュリティ上、最も守らなくてはならないユーザであり、パスワードは管理者以外に知られてはならない。これが漏れたら一発アウトだ。そのLinuxは諦めて、インストールし直した方がいい。

それくらい大事なユーザ権限だと思おう。

rootとはUnix Like System上の唯一神

要するに、rootはUnix Like System上の「唯一神」である。

基本的にLinuxでは「rootの命令は絶対」だ。他のユーザのパスワードを変更したり、システムファイルのパーミッションを書き換えることもできるし、Logを自分で書き換えることもできる。

自分自身で「/」ディレクトリを削除することも可能である。安易に扱うと危険な権限である。

rootでログインをしてはいけない

インストール後、とりあえずは普段使う一般ユーザを1人つくることだ。後述するが必要な時だけroot権限を借りるようにしよう。

先程も記述したがrootはその気になればシステム全体を削除することもできる。これはなにも意図的でなくても、誤操作でシステムファイルを削除してしまう可能性もあるからである。

「rm」コマンドのあと「*」などのワイルドカードを指定し、間違えてそのままエンターを押してしまった場合などの大事故が発生する。

root権限でこれを実行してしまった場合問「.hoge」などの最初がドットの隠しファイル以外、問答無用でそのディレクトリ内部のファイルが削除されてしまう。

オペレータがあなただけならば、困るのはあなただけかもしれないが、他人と共有しているサーバへログインしていた場合大惨事になるのは容易に想像できるだろう。

事故を防ぐためにも基本的に一般ユーザを使うことを意識しよう。root権限が必要な時を列挙すると

  • インストール後の初期設定、および設定変更時
  • パッケージインストール時
  • ログの確認時

上記3つのとき以外は基本的には一般ユーザで操作をおこなう方がいいだろう。

実際にやってみよう

rootでログイン

rootで一度ログインしてみよう。 ログイン画面で、ユーザ名:root、パスワード:決めた物を入力すればログインできる。

コマンドコンソールだと入力を受け付けるプロンプトが一般ユーザはシェルによってことなるが「$」もしくは「%」である。rootをスーパーユーザと呼ぶが、スーパーユーザは「#」となる。スーパーユーザはなんとなくイメージがわかると思うが、スーパーなユーザなのでなんでもできるrootを指している。

#の状態で、「id」コマンドを打ってみよう。

必ずuid=0(root) gid=0(root)と0番がわりふられているはずである。uidはユーザIDで、gidはグループIDを意味している。

これはどのLinuxディストリビューションでも共通だ。

# id

idコマンド

ディレクトリに関して

ディレクトリに関して一般ユーザは「/home/<hoge>」とhomeディレクトリの下にユーザディレクトリがあり、一般ユーザのデータはそこに保存される。

しかし「root」の場合「/root」という専用ディレクトリが用意されている。昔はルートディレクトリ「/」がそのままスーパーユーザのトップディレクトリだったが、「セキュリティ上問題が発生しかねない」という理由で専用のディレクトリである/rootがもうけられた。

$  ls  /

lsコマンド

suとsudo

基本的に一般ユーザが書き込みを許されているのは「/home」「/tmp」ディレクトリだ。

しかし管理者としてシステム設定などを変更したい場合はroot権限を借りなくてはならない。そこで「su」と「sudo」というコマンドを使うことになる。どちらも一時的にroot権限を借りることには変わりないが使用方法が異なる。

su

一般的なsuの使い方の場合ユーザはroot権限を一時的に使えるようになる。プロンプトは「#」になりexitするまで持続する。

su使用時にきかれるパスワードは「rootのパスワード」である。

もしシステム管理者があなたしかいないのならばsuで問題ないかもしれないが、他人と共有する場合、他人にrootパスワードを知らせることになる。

「rootのパスワードは知られてはいけない」という観点からいうのならば、セキュアではない、よってsudoを使うほうがいいだろう。

$  su

suコマンド

sudo

sudoはコマンド単位で一時的にroot権限を使う方法だ。「スーパーユーザでDoするからsudo」という意味合いで覚えておこう。

また必要なパスワードは「あなたのパスワード」である。

コマンド単位で「誰にどのコマンドをrootで実行させることを許可するか」を指定できる。こうすることでrootパスワードを知られることなく、必要なコマンドをroot権限で実行できるようになる。

もちろん無差別に権限を割り振ってしまうと意味がなくなるので注意していただきたい。sudoを使うには「visudo」コマンドで設定ファイルを編集しなければならない。一度スーパーユーザになってから。

# visudo

設定ファイルが開かれるはずなので最後の行に

hoge localhost=/sbin/shutdown -h now

と追加する。これでユーザhogeでsudoを使用してシャットダウンが可能になる。

$  sudo  shutdown -h now

sudo shutdown

基本的には下記のような記述を追加する。

ユーザ ホスト=(権限) コマンド

例えばユーザsaoriにすべてのコマンドの実行権限を与えたければ、

saori ALL=(ALL) ALL

のようにすればいい。

最近のディストリビューションの多くは、root権限になるのではなく、sudoの使用を推奨している。

まとめ

このページではLinuxのrootユーザについて一通りご紹介してきた。だいたいの内容はご理解いただけただろうか?

  • rootユーザはほとんどなんでもできる強力な権限をもったユーザ
  • rootになるのは避けて、安全にシステムを運用する

という2点を理解していただければと思う。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメント

  1. さくらば より:

    #visudoのところの説明のところ、もう少し詳しく説明していただきたいです。設定開いた後で詰まってます

    1. リナックスアカデミー より:

      コメントありがとうございます! 説明を追加してみました。ご確認下さい。

  2. ももんが2 より:

    LINUXの独学にとても分かりやすく助かっています。
    #visudoの部分で質問ですが
    「takahashiにすべてのコマンドの実行権限を与えたければ」の画像は
    「takahashi」ではなく「saori」ユーザにすべてのコマンドの実行権限を与えた例でよろしかったでしょうか。

    あと本文中のスーパーユーザというのは、rootのことになりますでしょうか?

    1. リナックスアカデミー より:

      お役立ていただいているようで大変嬉しく思います。

      おっしゃる通りでした。ご指摘ありがとうございます。修正しました。

      スーパユーザというものはおっしゃる通りrootになります。こちらも追記しておきます。

  3. みやけ より:

    すばらしい
    簡潔でわかりやすい

    1. リナックスアカデミー より:

      ありがとうございます。引き続きLinuxを勉強する際にご使用いただけますと幸いです。

コメントを残す

*