LFCA: ユーザー アカウント管理を学ぶ – パート 5
Linux システム管理者は、組織内のすべての IT 運用のスムーズな流れを保証する任務を負います。いくつかの IT 運用が絡み合っていることを考慮すると、システム管理者は通常、データベース管理者やネットワーク管理者など、さまざまな役割を担っています。
この記事は LFCA シリーズのパート 5 です。このパートでは、Linux システムでユーザーを作成および管理するための一般的なシステム管理コマンドについて説明します。
Linux でのユーザー アカウント管理
Linux システム管理者の主な責任の 1 つは、Linux システムでユーザーを作成および管理することです。各ユーザー アカウントには、ユーザー名とユーザー ID (UID) という 2 つの一意の識別子があります。
基本的に、Linux には 3 つの主要なユーザー カテゴリがあります。
ルートユーザー
root ユーザーは Linux システムで最も強力なユーザーであり、通常はインストール プロセス中に作成されます。 root ユーザーは、Linux システムまたはその他の UNIX 系 OS において絶対的な権限を持っています。ユーザーはすべてのコマンド、ファイル、ディレクトリにアクセスし、好みに合わせてシステムを変更できます。
root ユーザーは、システムの更新、パッケージのインストールとアンインストール、他のユーザーの追加または削除、権限の付与または取り消し、その他のシステム管理タスクを制限なく実行できます。
root ユーザーはシステム上でほぼ何でもできます。 Linux および UNIX 系システムでは、システムで何をしているのかをユーザーが十分に理解していることが前提となっています。とはいえ、root ユーザーは簡単にシステムを破壊できます。致命的なコマンドを実行するだけで、システムは煙に巻かれます。
このため、root ユーザーとしてコマンドを実行することは強くお勧めできません。代わりに、sudo ユーザーを構成することが推奨されます。つまり、特定の管理タスクを実行するための sudo 権限を通常のユーザーに付与し、一部のタスクを root ユーザーのみに制限します。
一般ユーザー
一般ユーザーとは、システム管理者が作成できる通常のログインユーザーです。通常、インストール プロセス中に作成する規定があります。ただし、インストール後にも必要なだけ通常のユーザーを作成できます。
通常のユーザーは、タスクを実行し、許可されているファイルとディレクトリにアクセスすることしかできません。必要に応じて、通常のユーザーに管理レベルのタスクを実行するための昇格された権限を付与できます。必要に応じて、通常のユーザーを削除または無効にすることもできます。
サービスアカウント
これは、ソフトウェア パッケージのインストール時に作成される非ログイン アカウントです。このようなアカウントは、システム内のプロセスを実行するためにサービスによって使用されます。これらは、システム内で日常的なタスクや管理タスクを実行するように設計または意図されていません。
ユーザー管理ファイル
Linux システムのユーザーに関する情報は、次のファイルに保存されます。
- /etc/passwd ファイル
- /etc/group ファイル
- /etc/gshadow ファイル
- /etc/shadow ファイル
各ファイルとその内容を理解しましょう。
/etc/passwd ファイル
/etc/passwd ファイルには、さまざまなフィールドに含まれるユーザーに関する大量の情報が含まれています。ファイルの内容を表示するには、次のように cat コマンドを使用します。
cat /etc/passwd
以下は出力の一部です。
tecmint:x:1002:1002:tecmint,,,:/home/tecmint:/bin/bash
最初の行に焦点を当てて、さまざまなフィールドを肉付けしてみましょう。左端から順に次のとおりです。
- ユーザー名: これはユーザーの名前であり、この場合は tecmint です。
- パスワード: 2 番目の列は、ユーザーの暗号化されたパスワードを表します。パスワードはプレーン テキストで出力されず、x 記号の付いたプレースホルダーが使用されます。
- UID: これはユーザーのIDです。これはすべてのユーザーの一意の識別子です。
- GID: これはグループ ID です。
- ユーザーの簡単な説明または概要。
- これはユーザーのホーム ディレクトリへのパスです。 tecmint ユーザーの場合は、/home/tecmint があります。
- これはログインシェルです。通常のログイン ユーザーの場合、これは通常 /bin/bash として表されます。 SSH や MySQL などのサービス アカウントの場合、これは通常 /bin/false として表されます。
/etc/group ファイル
このファイルにはユーザー グループに関する情報が含まれています。ユーザーが作成されると、シェルはユーザーのユーザー名に対応するグループを自動的に作成します。これはプライマリ グループとして知られています。ユーザーは、作成時にプライマリ グループに追加されます。
たとえば、bob というユーザーを作成すると、システムは自動的に bob というグループを作成し、そのグループにユーザー bob を追加します。
cat /etc/group
tecmint:x:1002:
/etc/group ファイルには 3 つの列があります。左端から次のとおりです。
- グループ名。各グループ名は一意である必要があります。
- グループのパスワード。通常は x プレースホルダーで表されます。
- グループID(GID)
- グループの人(仲間)たち。これらはグループに所属するメンバーです。ユーザーがグループ内の唯一のメンバーである場合、このフィールドは空白のままになります。
注: ユーザーは複数のグループのメンバーになることができます。同様に、グループには複数のメンバーを含めることができます。
ユーザーが所属するグループを確認するには、次のコマンドを実行します。
groups username
たとえば、ユーザー tecmint が属するグループを確認するには、次のコマンドを実行します。
groups tecmint
出力では、ユーザーが tecmint と sudo の 2 つのグループに属していることが確認されます。
tecmint : tecmint sudo
/etc/gshadow ファイル
このファイルには、グループ アカウントの暗号化されたパスワードまたは「シャドウ化された」パスワードが含まれており、セキュリティ上の理由から、通常のユーザーはアクセスできません。これは、root ユーザーと sudo 権限を持つユーザーのみが読み取ることができます。
sudo cat /etc/gshadow
tecmint:!::
ファイルには左端から次のフィールドが含まれています。
- グループ名
- 暗号化されたグループパスワード
- グループ管理者
- グループの人(仲間)たち
/etc/shadow ファイル
/etc/shadow ファイルには、ユーザーの実際のパスワードがハッシュ化または暗号化された形式で保存されます。ここでも、フィールドはコロンで区切られ、示されている形式になります。
sudo cat /etc/shadow
tecmint:$6$iavr8PAxxnWmfh6J$iJeiuHeo5drKWcXQ.BFGUrukn4JWW7j4cwjX7uhH1:18557:0:99999:7:::
ファイルには 9 つのフィールドがあります。左端から始めて次のようになります。
- ユーザー名: これはログイン名です。
- ユーザーのパスワード。これはハッシュ化または暗号化された形式で表示されます。
- 最後のパスワード変更。これはパスワードが変更されてからの日付であり、エポック日から計算されます。大紀元は 1970 年 1 月 1 日です。
- パスワードの最低有効期間。これは、パスワードを設定できるようになるまでに経過する必要がある最小日数です。
- パスワードの最大有効期間。これは、パスワードを変更する必要があるまでの最大日数です。
- それは警戒期です。名前が示すように、これはパスワードの有効期限が切れる直前に、パスワードの有効期限が近づいていることをユーザーに通知する日数です。
- それは非活動期間です。パスワードの有効期限が切れた後、ユーザーがパスワードを変更せずにユーザー アカウントが無効になる日数。
- それは有効期限です。ユーザーアカウントの有効期限が切れた日付。
- 予約済みフィールド。 – これは空白のままです。
Linux システムにユーザーを追加する方法
Debian および Ubuntu ディストリビューションの場合、 ユーザーを追加するために adduser ユーティリティが使用されます。
構文は非常にシンプルで簡単です。
adduser username
たとえば、bob というユーザーを追加するには、次のコマンドを実行します。
adduser bob
出力から、「bob」というユーザーが作成され、「bob」という新しく作成されたグループに追加されます。さらに、システムはホーム ディレクトリも作成し、そこに設定ファイルをコピーします。
その後、新しいユーザーのパスワードの入力を求められ、確認します。シェルでは、ユーザーのフルネームと、部屋番号や勤務先の電話番号などのその他のオプション情報の入力も求められます。この情報は実際には必要ないので、飛ばしても問題ありません。最後に、「Y」
を押して、提供された情報が正しいことを確認します。
RHEL および CentOS ベース システムの場合は、useradd コマンドを使用します。
useradd bob
次に、次のように passwd コマンドを使用してユーザーのパスワードを設定します。
passwd bob
Linux システムでユーザーを削除する方法
システムからユーザーを削除するには、図に示すように、まずユーザーのシステムへのログインをロックすることをお勧めします。
passwd -l bob
必要に応じて、tar コマンドを使用してユーザーのファイルをバックアップできます。
tar -cvf /backups/bob-home-directory.tar.bz2 /home/bob
最後に、ユーザーをホーム ディレクトリとともに削除するには、次のように deluser コマンドを使用します。
deluser --remove-home bob
さらに、次のように userdel コマンドを使用することもできます。
userdel -r bob
2 つのコマンドは、ユーザーをホーム ディレクトリとともに完全に削除します。
結論
以上、オフィス環境でユーザー アカウントを管理する場合に特に役立つユーザー管理コマンドの概要を説明しました。システム管理スキルを磨くために、時々試してみてください。