ローカルユーザーとグループの管理

LinuxBeginner
オンラインで実践に進む

はじめに

ローカルユーザーとグループの管理は、Linux 管理者が最初に習得すべき ID 管理タスクの一つです。RHCSA スタイルの実務では、アカウント情報の確認、ユーザーやグループの作成、グループメンバーシップの調整、アカウントメタデータの変更、そして一時アカウントの安全な削除が求められます。

この実験では、rhcsauser、rhcsaops、rhcsaaudit という一時的なローカル ID のみを作成します。labex アカウント、SSH 設定、パスワード、ログインアクセスなどは変更しません。最後のステップでは、システムをクリーンな状態に戻すために、作成した一時ユーザーと一時グループを削除します。

既存のローカル ID レコードの確認

このステップでは、新しい ID を作成する前に、既存のローカル ID レコードを確認します。getent は設定されたネームサービスデータベースを照会するため、ローカルファイルやその他の ID ソースに対しても機能します。id コマンドは、ユーザーの数値 ID とグループメンバーシップを表示します。

標準の LabEx プロジェクトディレクトリに移動します。

cd /home/labex/project

既存の labex アカウントレコードを確認します。

getent passwd labex

出力はコロンで区切られています。最初のフィールドはログイン名で、その後のフィールドには数値の UID、プライマリ GID、ホームディレクトリ、ログインシェルが含まれます。

labex の現在のグループメンバーシップを確認します。

id labex

labex の現在のプライマリグループレコードを確認します。

getent group labex

これらのコマンドは読み取り専用です。これらは、練習用の一時 ID を作成する前のベースラインとなります。

ローカルグループとユーザーの作成

このステップでは、ローカルグループとローカルユーザーを作成します。先にグループを作成しておくことで、アカウント作成時にそのグループをユーザーのプライマリグループとして割り当てることができます。

練習用ユーザーのプライマリグループを作成します。

sudo groupadd rhcsaops

ホームディレクトリを持ち、ログインシェルとして Bash を使用し、プライマリグループを rhcsaops に設定した rhcsauser を作成します。useradd において、-m はホームディレクトリの作成、-g はプライマリグループの設定、-s はログインシェルの設定を行います。

sudo useradd -m -g rhcsaops -s /bin/bash rhcsauser

新しいアカウントレコードを確認します。

getent passwd rhcsauser

新しいユーザーの ID とグループメンバーシップを確認します。

id rhcsauser

useradd -m によって作成されたホームディレクトリをリスト表示します。

sudo ls -ld /home/rhcsauser

補助グループの追加

このステップでは、補助グループを追加します。ユーザーはプライマリグループを一つ持ちますが、共有アクセス権を得るために追加のグループに所属することも可能です。

rhcsaaudit という名前の二つ目のグループを作成します。

sudo groupadd rhcsaaudit

rhcsauser を補助グループ rhcsaaudit に追加します。-aG オプションは、補助グループリストへの追加を意味します。既存の補助グループを誤って置き換えないよう、必ず -a を -G と併用してください。

sudo usermod -aG rhcsaaudit rhcsauser

ユーザーのグループを確認します。

id rhcsauser

監査グループのレコードを確認します。グループの行にメンバーとして rhcsauser が表示されているはずです。

getent group rhcsaaudit

アカウントメタデータの変更

このステップでは、パスワードの状態を変更せずにアカウントのメタデータを変更します。パスワードの有効期限やアカウントロックについては後述するため、ここではコメントフィールドとログインシェルの変更に焦点を当てます。

練習用ユーザーに説明用のコメントを設定します。-c オプションは GECOS/コメントフィールドを更新します。

sudo usermod -c "RHCSA Practice User" rhcsauser

ログインシェルを /bin/sh に変更します。-s オプションはアカウントレコードのシェルフィールドを更新します。

sudo usermod -s /bin/sh rhcsauser

更新されたアカウントレコードを確認します。

getent passwd rhcsauser

chage -l を使用して、パスワードの有効期限の詳細のみを確認します。この実験ではパスワードの有効期限は変更しないでください(次のガイド付き実験で扱います)。

sudo chage -l rhcsauser

一時的なローカル ID の削除

このステップでは、一時ユーザーと一時グループを削除します。使用されていないアカウントやグループをシステムに残さないことは ID 管理の一部であり、クリーンアップは重要な作業です。

練習用ユーザーとそのホームディレクトリを削除します。-r オプションは、サポートされている環境においてユーザーのホームディレクトリとメールスプールを削除します。

sudo userdel -r rhcsauser

補助グループである監査グループを削除します。

sudo groupdel rhcsaaudit

ユーザーが削除されたことを確認します。getent はレコードが存在しない場合にゼロ以外の値を返すため、&& echo を使用することで、検索が期待通りに失敗した場合のみメッセージが表示されます。

getent passwd rhcsauser >/dev/null || echo "rhcsauser removed"

監査グループが削除されたことを確認します。

getent group rhcsaaudit >/dev/null || echo "rhcsaaudit removed"

rhcsaops は確認用にそのまま残しておきます。これは現在、空のローカルグループとなっています。

getent group rhcsaops

まとめ

RHCSA 試験対策として、ローカルユーザーとグループの管理を練習しました。既存の ID レコードの確認、プライマリグループとローカルユーザーの作成、補助グループの追加、アカウントメタデータの変更、パスワード有効期限情報の確認(変更なし)、そして一時的な ID の安全な削除を行いました。