Linux講座にようこそ。このページは「Linuxの使い方 - 第7章 システム管理」です。

Linuxの使い方

7. システム管理(1/3)

システム管理はディストリビューション独自のシステム管理ツールを用意していることや、ファイルシステムのレイアウトが異なることなどにより、ディストリビューションによって異なりますし、ディスクトップ環境(GNOMEやKDE等)でも異なります。ここでは、Fedoraを対象に説明して行きますが、他のディストリビューションでも参考になると思います。ここでは、次の内容について説明します。

7.1 ユーザー管理

UNIXはマルチユーザー/マルチプロセスのOSとして開発されましたので、UNIX系のOSではユーザー管理は必須です。ユーザーはシステム管理者(スーパーユーザー)と一般ユーザーの2種類あります。システム管理者のユーザー名はroot(ルート)と決まっていて、システムのインストール時にユーザー登録を行ないます。

システム管理者はシステムを変更できる権限を持っていて、ソフトウェアのインストール/削除やソフトウェアアップデートなどを行うことが出来ます。

一般ユーザーはインストール時に登録するか、別途システム管理者がGUIツールかコマンドを使って登録します。個人で使っていて、ユーザーが一人の場合はrootだけでもよいのですが、rootは何でもできてしまいますので、日常使うには危険すぎます。一人だけで使う場合も一般ユーザーを登録しておき、通常はこちらを使うようにすることをお勧めします。

Fedoraの場合、インストール時に登録する一般ユーザーは、システム管理者の権限が必要なコマンドを実行できる機能を持っています。システム管理のコマンドを実行する場合は、次のように、sudoコマンドで実行できます。

$ sudo システム管理コマンド ← 引数にシステム管理のコマンドを指定します
[sudo] merry のパスワード: ← パスワードを聞いて来るので、一般ユーザーのパスワードを入力します
$

最初のsudoコマンドの実行時にはパスワードの入力が必要ですが、2回目以降は不要です。

他の方法として、一時的に他のユーザーにログインするsuコマンドでrootになることもできます。

$ su -
Password: ← パスワードを聞いて来るので、rootのパスワードを入力します
# ← プロンプトが「# 」になります。システム管理コマンドが実行可能になります

7.1.1 ユーザー登録

ユーザー登録はGUIツールを使えば簡単に行えます。登録時に指定する情報として一般に、次のものがあります。

ユーザー名
登録するユーザーのユーザー名です。
パスワード
正当なユーザーかを確認するための合い言葉のようなものです。
ユーザーID
ユーザー名に対するIDで、一般ユーザーの場合は1000以上の整数です。
グループ名
ユーザーが属するグループで、あらかじめ登録しておく必要があります。
コメント
ユーザーの本名や、連絡先などをコンマ(,)で区切って指定します。
ホームディレクトリ
ホームディレクトリのパス名で、通常は/homeの下にユーザー名と同じ名前で作ります。
使用するシェル
シェルの起動コマンドで、通常はbash(/bin/bash)です。
ユーザー管理ツール
【図7-1】
ユーザー管理ツール

図7-1はsystem-config-usersというユーザー管理ツールです。このツールを使えばユーザー名やパスワード等、必要最低限の情報を指定するだけでユーザーの新規登録・削除・更新が行えます。また、グループの新規登録・削除や、グループへのユーザーの登録なども行えます。登録や削除を行うにはシステム管理の権限が必要です。

このようにGUIツールを使えば簡単にユーザー管理が出来るのですが、ツールによってはツールが勝手にユーザーIDをつけてしまうものがあります。保護モード(パーミッション)によるファイルやディレクトリの保護は、ユーザーIDにより行っていますので、ユーザーの再登録等でユーザーIDが途中で変わってしまうと、ファイルやディレクトリのアクセスができなくなってしまいます。従って、一人のユーザーに対しては常に同じユーザーIDを割り振ったほうがよいでしょう。

ユーザー登録はもちろんコマンドでもできます。また、パスワードは必須ですので、必ずパスワードの設定も行なう必要があります。パスワードの設定はユーザー登録時或は、passwdコマンドで行います。

※ ユーザー登録
# useradd -u ユーザーID -g グループ名又は、グループID -c コメント -d ホームディレクトリ -p パスワード ユーザー名
※ グループ登録
# groupadd -g グループID グループ名
※ ユーザー削除
# userdel -r ユーザー名
※ グループ削除
# groupdel グループ名
※ パスワード設定
# passwd ユーザー名 ← ユーザー名を指定できるのはシステム管理者(root)のみです
【表7-1】 ユーザー管理コマンドのオプション一覧
オプション意味
-uユーザーIDを指定します。省略すると1000以上で、まだ使われていない値を自動採番します。
-guseraddの場合は登録するユーザーが所属するグループのグループ名又は、グループIDを指定します。ここで指定するグループは既に存在するものでなければなりません。
groupaddの場合は登録するグループのグループIDを指定します。省略すると1000以上で、まだ使われていない値を自動採番します。
-cユーザー名に対するコメントを指定します。通常、ユーザーの本名や連絡先をコンマ(,)で区切って指定します。省略可能です。
-dユーザーのホームディレクトリを絶対パス名で指定します。省略するとデフォルトのディレクトリ(通常は/home/)にユーザー名と同じ名前のディレクトリを作り、ホームディレクトリとします。
-pパスワードを指定します。省略できますが、その場合は登録したユーザー名は使用できませんので、別途、passwdコマンドでパスワードを設定する必要があります。
-rホームディレクトリも削除します。省略した場合はホームディレクトリを削除しません。

ユーザー情報は次の設定ファイルに格納されます。/etc/passwdと/etc/groupはテキストファイルですのでcatやmoreコマンドで簡単に参照できます。(/etc/shadowはバイナリファイルです)

/etc/passwd
ユーザー情報です。
/etc/group
グループ情報です。
/etc/shadow
パスワード情報です。

次の例では、ユーザーを新規登録後、パスワードの設定を行います。

# useradd -u 1001 -g users -d /home/merry merry
     ↑ ユーザー名「merry」を登録します。グループusersはインストール時に登録済みとします
#
# passwd merry ← パスワードを設定します
New password: ← 設定するパスワードを入力します(エコーバックはありません)
Retype new password: ← 設定するパスワードを再入力します
passwd: all authentication tokens updated successfully ← 設定完了です
#

7.1.2 ファイルやディレクトリの所有者の変更

ファイルやディレクトリを作成すると、自動的に所有者グループ情報が付加されます。これらの情報はlsコマンドの-lオプションで表示できます。(保護モードの変更については【4.2.1 一般形式(chmodコマンド)】をご覧ください)

$ ls -l syomei.txt
-rw-r--r--  1 merry users 572  3月 15  2004 syomei.txt
                   ↑ 所有者の属するグループです
             ↑ ファイルの所有者(ユーザー名)です
$

一般ユーザーの場合はこれらの情報を変更したいということはほとんど有りませんが、システム管理を行なうときには変更したいことが度々有ります。例えばシステム管理者(root)がファイルを一般ユーザーの領域にコピーすると、そのファイルの所有者はroot、グループもrootになります。所有者とグループの変更はchownコマンドで行ないます。

# chown -R ユーザー名又は、ユーザーID:グループ名又は、グループID ファイルパス名1 ファイルパス名2 …

-Rオプションを指定すると、ファイルパス名として指定したディレクトリ以下の全てのファイルとディレクトリを処理します。

次の例では、システム管理者が所有するファイルの所有者をmerryに変更して、結果を確認します。

# ls -l linux-2.6.7.tar.bz2
-rw-r--r--  1 root root 51364541  9月  6 15:24 linux-2.6.7.tar.bz2
              ↑ 所有者はroot、グループもrootです
#
# chown merry:users linux-2.6.7.tar.bz2 ← 所有者はmerry、グループはusersに変更します
# ls -l linux-2.6.7.tar.bz2
-rw-r--r--  1 merry users 51364541  9月  6 15:24 linux-2.6.7.tar.bz2
#