2) ユーザー管理について
セキュリティー確保のため、アカウント情報を適切に設定し、アクセス制御の基礎を構築するための「ユーザー管理」について解説します。
インターネットリサーチ・コンサルティング・企画、ウェブ翻訳から、Web制作、システム開発までオープンソース・ネットワークビジネスを提供
ユーザー管理について
UNIX系OSには、全権限を持つスーパーユーザーと、それ以外の2種類のユーザーアカウントがあります。
UNIX系OSでは、スーパーユーザー権限で、スーパーユーザー以外のユーザーを管理します。
ここでは、スーパーユーザー以外のユーザーを「一般ユーザー」と表現します。
ユーザー管理方式について
通常、UNIX系OSのユーザーアカウントは、/etc/passwdのようなパスワードデータベースファイルにより管理されています。
パスワードデータベースファイルはサーバー/システム毎に設定されており、他のサーバー/システムから利用することができません。
一方、複数のサーバー/システムで同一のユーザー情報を共有し、一元管理により管理コストを軽減するためのユーザー管理方式として、NIS、LDAP、Active Directoryなどのディレクトリサービスがあります。
ここでは、UNIX系OSでは一般的な、/etc/passwdおよび/etc/shadowによるパスワードデータベースファイルによるユーザー管理方法について解説します。
ユーザー管理内容
ユーザー情報は/etc/passwdおよび/etc/shadowの各ファイルで管理されており、後述のユーザー管理コマンドでユーザー情報を変更すると、本ファイル内容が変更されます。
各管理ファイルにて管理されている主なユーザー情報は、以下の通りです。
| 管理ファイル | 管理内容 |
|---|---|
| /etc/passwd | ユーザー名 (ログイン名) |
| ユーザーID | |
| ユーザーの所属する主グループID | |
| ホームディレクトリー (そのユーザー専用に割り当てられたディレクトリー) | |
| ログインシェル | |
| /etc/shadow | ユーザー名(ログイン名) |
| 復号化できないアルゴリズムで暗号化されたパスワード | |
| パスワードの有効期限 |
ユーザー管理コマンド
一般ユーザーを管理するために、以下の専用ユーザー管理コマンドがあります。
これらはスーパーユーザー権限にて実行可能です。
ただし、自分自身のパスワード変更は、一般ユーザーでも実行できます。
- useradd (ユーザー新規作成)
- userdel (ユーザー削除)
- usermod (ユーザー管理情報変更)
- passwd (パスワード変更)
使用例は以下の通りです。(行頭の「#」は、スーパーユーザー権限による実行を示しています。)
◆ユーザー「user1」の新規作成
# useradd user1
上記の場合、ユーザー名 (user1) 以外のユーザー情報は、初期値に自動設定されます。サーバーにより初期値は様々ですが、例えば、以下初期値が割り当てられます。
| ユーザーID | 100以上且つ既存ユーザーIDよりも大きい、最小のID |
| ホームディレクトリー | /home/user1 |
| ユーザーの所属する主グループ名 | user1 (ユーザー名と同じグループに割り当てられる。指定したグループが存在しない場合、グループが新規作成される。) |
| パスワード | 未設定 (パスワードを設定するまで、パスワードによる認証不可) |
◆ユーザー「user1」のパスワードを変更
# passwd user1
上記実行後、パスワード入力待ち状態になりますので、パスワードを入力します。
◆ユーザー「user1」のログインシェルを/bin/tcshに変更
# usermod -s /bin/tcsh user1
◆ユーザー「user1」の削除
# userdel user1
次回は、複数のユーザーで共通作業を効率良く行えるようにユーザーをグルーピングし、グループ毎に適切なアクセス制御を行うための「グループ管理」について解説します。


