Raspberry Piでシステム管理者を学ぶ!第1回:管理ユーザー「root」について

0
10843
第1回:管理ユーザー「root」について

システム管理を学ぶとコンピュータシステムが分かる!

今回の連載で学ぶ「システム管理者」とは、いわばコンピュータや構築されたシステムの仕組みを知っているスペシャリストの事をいいます。

手のひらサイズのコンピュータ「ラズベリーパイ」は低価格なのに企業やインターネット上で利用されている様々なサービスを提供する「サーバー」と呼ばれるコンピュータと殆ど同じことができる学習用コンピュータです。子どもから大人まで気軽にコンピュータの仕組みが学べ、実用にも十分耐えうるものです。この仕組みを理解することでコンピュータの仕組みだけでなく、世の中にあるコンピュータシステムの仕組みの基礎も理解することができます。

この連載で学べる事

今回の連載は、パソコンやインターネットは使った事があるがコンピュータやネットワークがどのような仕組みで動いているのかに疑問をもっている初心者の方から、これからLinuxOSを仕事で利用したいという方までを対象としています。LinuxベースのOSの仕組みやネットワーク、それらのシステム管理などを実際の操作を交えてハンズオンで学ぶことで、コンピュータに対するより深い知識を身に着ける事ができます。

Raspberry Piでシステム管理者の仕事を体験する!

Raspberry PiはLinuxベースのOS「RaspberryPi OS(旧Raspbian)」を搭載したコンピュータです。Linux OSはインターネット上でホームページやメールなどの様々なサービスを提供する「サーバー」と呼ばれる機能を運用するのに適しています。データセンターなどにあるような高機能なコンピュータでなくても同じことがラズベリーパイでも体験できます。全15回でラズベリーパイによりシステム管理を学んでいきましょう。

データセンターのサーバー群 Fabshop
データセンターのサーバー群 Fabshop

RaspberryPiでも複数のユーザーが同時に利用できる

サーバーOSとして利用されているLinuxでは1台のコンピュータに複数のユーザーが同時にアクセスしてサービスを受ける事ができます。最も一般的な例でいえば、インターネット上のホームページ。ホームページを作成してホームページを公開するための「ウェブサーバー」を動かしておくことで、外部のユーザーが同時に何人でもアクセスできます。

ホームページは誰でもアクセスできるものですが、ユーザーがIDとパスワードで認証を受けて外部からサーバーコンピュータにアクセスして、そこに保存されているファイルを利用したり、計算処理を行ったりすることもできます。

コンピュータには管理者が必要

このように複数のユーザーが利用するコンピュータは「管理者」と呼ばれるすべての操作が許される特別な権限を持ったユーザーが必要です。WindowsやMacなどのパソコンと呼ばれるコンピュータもユーザーを追加して複数のユーザーで利用することができるため、管理者が存在します。

コンピュータを1人で利用する場合も管理者は必要になります。これは、日常的にコンピュータを利用している時に管理権限を持ったユーザーで作業を行っていると、すべての操作が許されているため、操作ミスで誤ってシステムに関する重要なファイルを削除してしまったりすることがあるため、通常利用時は一般ユーザーとしてシステムファイルへのアクセスが許可されていないユーザーで作業を行い、ソフトをインストールしたり、機能を追加するなど重要な操作をするときは管理者に切り替えて使うためです。

システム管理者「root」とは?

管理者というと英語では「Administrator(アドミニストレータ―)」と言いい、Windowsのデフォルト管理ユーザー名は「Administrator」になっています。

Linux系のOSではシステム管理者の事を「root(ルート)」と呼びます。他にもスーパーユーザーと呼んだりもします。なぜ「root」なのかというと、コンピューターで使われているファイルシステムは階層構造になっていて、その一番上位のディレクトリの事を「/」で表し、この一番上位ディレクトリの事を「ルートディレクトリ」と呼びます。rootは日本語だと「根」という意味になり、階層構造の根の部分からすべてにわたって管理できることからこの呼び名になったようです。

Linux file system

管理者 root(スーパーユーザー)がやる事

管理者であるrootはシステムのすべてを管理します。サービスを利用するユーザーが安定して利用できるようにしたり、新しい機能を追加したり、常にシステムの状況を把握してコンピュータの動作を最良の状態にしておきます。大まかにその作業をまとめると以下の通りです。

  • ソフトウェアの追加・削除
  • システム・ネットワークの状態監視
  • ユーザーの管理
  • システムのチューニングやメンテナンス

rootでログインするとrootしか利用できないシステム管理用コマンドが利用できるようになります。それらを使ってシステムを管理していきます。

管理者には情報リテラシーが必要

rootとして作業する人は利用するシステムに対するすべての権限を持つことになります。これはアクセスしてきたユーザーの情報へもアクセスできることを意味するわけです。データの中には機密情報やプライベートな情報などもあるため、rootとして作業する人には知識だけでなく、これら情報を外部に漏らさない情報の取り扱いのためのモラルも必要になります。

「システム管理者を学ぶ」ための準備

今回はRaspberry Piを使用して、システム管理者がどのようにLinuxシステムを管理していくかを実際に操作しながら学んでいきます。ラズベリーパイ本体とOSのセットアップが完了したSDカードさえあればどなたでも学習していける内容になっています。

Raspberry Pi の「root」について

rootは先にも述べた通り管理者としてすべての権限を持ったユーザーです。そのため普段はこのユーザーで作業することはありませんが、今回はシステム管理を学ぶためrootユーザーでログインできるようにしなければなりません。Raspberry Pi OSではセキュリティ上rootユーザーのパスワードはデフォルトでは利用できないようになっています。rootのパスワードは第三者に利用されてしまうとシステム全てを乗っ取られてしまうため、rootにパスワードを与えておらず外部からログインできないようになっているのです。しかし今回はシステム管理を行うためパスワードを設定します。

Raspberry Pi OSでrootにパスワードを与える事はセキュリティーホールになります。ですので大文字・小文字・数字・記号などを組み合わせ桁数も多めにして設定します。しかもrootのパスワードを設定した後にそのパスワードを忘れてしまうともうそのシステムは回復できなくなってしまいますので、絶対に忘れてもいけません。(Raspberry Piは学習用のコンピュータですので、重大な作業はおこなわれないため、もし忘れてもSDカードをフォーマットするなどして初期状態からのシステムへ回復はできます。)

rootにパスワードを与える

システム管理者が使うコマンドとして「sudo」と呼ばれるものがあります。これはコマンドを管理権限で実行するというもので、su(スーパーユーザー)がdo(する)という意味になります。ここでは「passwd」コマンドを使ってrootに対してパスワードを設定しますが、そもそもraspberry Piではデフォルトユーザーが「pi」という名称になっていて、このユーザーでは当たり前ですが管理者rootのパスワードを変更できません。そのため、passwdコマンドに対してsudoをつけて実行します。先にも述べましたが入力するパスワードは強固なものを考えておいてください。

ターミナルを起動して以下のコマンドを実行します。

$ sudo passwd root

新しいパスワードを入力するように求められます。この場合パスワードを入力しても「*」マークもなにも表示されません。キーを押せば入力されていますので、慎重に入力して、再度同じパスワードを入力してうまくいけば「passwd:パスワードは正しく更新されました」と表示されます。

第1回:管理ユーザー「root」について

繰り返しになりますが、パスワードは絶対に忘れないもので、かつ複雑なものにしておいてください。

rootでログインしてみる

ターミナルの画面でコマンドラインの先頭には「pi@raspberrypi」という表示になっています。これはデフォルトで「pi」というユーザーが「raspberrypi」というコンピュータ名のコンピュータを使っているという表示になっています。ユーザーを「pi」から「root」に変更するには「su」コマンドを入力します。

$ su

先ほど設定したrootのパスワードを入力するとrootユーザーに切り替わります。rootになると表示が「root@raspberrypi」となっていて、今現在は「/home/pi」というディレクトリに居るという表示になっています。

一般ユーザーですと、コマンド入力待ちの記号として「$」マークが表示されますが、rootユーザーになると「#」になります。

rootログイン

管理権限で実行できる「sudo」と「su」による切り替えの違い

sudoというコマンドをコマンドの先頭に付けて実行すると管理権限で実行できると言いました。またsuは管理者である「root」に切り替えて管理者になって操作ができます。どちらも同じ意味になりますが、sudoの場合はpiユーザーのまま1回だけ管理コマンドを実行する場合などに利用します。

たとえば、システム全体のアップデートを行う場合などは

$ sudo apt update

などのコマンドを実行しますが、アップデートを行うためだけに「su」コマンドでrootユーザーに切り替えて、rootパスワードに切り替えて「apt update」とやるのはちょっと面倒です。システム管理に関わるような作業を続けて行う予定があるのであればrootユーザーに切り替えますが、ちょっとしたことで1回だけ管理作業を行う場合はsudoを使います。

rootユーザーに切り替えるとそれはそれで全権をもって作業が出来るため、謝った操作をした場合にシステムを壊してしまうなどのリスクも背負う事になりますので、極力rootユーザーでは動きたいくないものです。

rootから一般ユーザーに戻るには

管理者(root)から一般ユーザー(pi)に戻るにはコマンドライン上で「exit」と入力します。

# exit

これで、今まで通り「pi@raspberrypi $」という表示に戻ります。

rootユーザーへのパスワードを削除するには?

rootユーザーがパスワードを持っているという事はセキュリティホールになると言いました。ですので、今回の連載が終了したら、rootのパスワード設定をなくしたい(元に戻したい)と思う場合は以下のコマンドを入力してください。

$ sudo passwd -l root

これでrootのパスワードが削除されました。suコマンドでrootに設定した先ほどのパスワードを入力しても、「認証失敗」になりログインできなくなっています。

Root パスワードの削除

rootが良く使うコマンド一覧

rootは一般ユーザーが使う事ができない様々なコマンドを使う事ができます。システム管理をする上でよく使うコマンドをまとめてみました。実際の使い方は今後具体的に紹介していきますので、簡単に説明しておきます。

  • su —- rootユーザーへの切り替えを行う。
  • apt —- パッケージのインストールやアップデートなどを行う時に使う。
  • ps — 実行中のプロセスを表示する。
  • kill — 実行中のプロセスを終了させる。
  • top — 現在のシステムやハードウェアの稼働状況を表示する。
  • useradd — システムに新しい利用者を追加。
  • userdel — システムからユーザーを削除。
  • chmod — ファイルのパーミッションを変更。
  • chown — ファイルのオーナーを変更。
  • netstat — ネットワークの現在の状況を表示。
  • ping — 通信する先のコンピュータが動作しているか否かの確認。
  • ifconfig — ネットワークインターフェイスの設定内容の表示や変更
  • route — ネットワーク上のルーティングテーブルを設定する。
  • passwd — 指定したユーザーのパスワードを変更したり、パスワードを設定。
  • fsck — ファイルシステムの検査と修復を行う。
  • shutdown — システムを終了したり、再起動する。
  • telinit — システムの動作モードを変更。複数ユーザーの利用を可否を設定できる。
  • mount — 新しいファイルシステム(DVDドライブなど)を接続して利用できるようにする。
  • umount — マウントしたファイルシステムをマウント解除する。

他にもまだまだ沢山コマンドはありますが、その一部を紹介しました。今後システム管理の連載が進むにつれてこれら内容をより詳しく紹介していきます。

まとめ

第1回は管理ユーザーがどのようなものでどんな作業があるか、そしてrootのパスワードの設定方法などを学びました。管理ユーザーはシステム全体の支配者でもあるわけですから、それなりのモラルを持った行動なども必要です。他人の個人情報を目ることは事故や事件に繋がることがあります。万が一見てしまっても興味を持たず、わすれてしまう管理者としての立ち振る舞いが必要です。

第2回は 「システム管理者が管理する様々なファイル」についてです。