リナックスシステム管理者として、組織内のすべてのITオペレーションのスムーズな流れを確保することが求められます。いくつかのITオペレーションが入り組んでいるため、システム管理者は通常、データベース管理者やネットワーク管理者など、さまざまな役割を担当します。
この記事はPart 5です。LFCAシリーズの一部であり、この部分では、Linuxシステムでユーザーを作成および管理するための一般的なシステム管理コマンドについて紹介します。
Linuxでのユーザーアカウント管理
Linuxシステム管理者の主な責任の1つは、Linuxシステムでユーザーを作成および管理することです。各ユーザーアカウントには2つの固有の識別子があります: ユーザー名とユーザーID(UID)。
基本的に、Linuxには3つの主要なユーザーカテゴリがあります:
ルートユーザー
rootユーザーは、Linuxシステムで最も強力なユーザーであり、通常、インストールプロセス中に作成されます。rootユーザーはLinuxシステムまたは他のUNIX系OSで絶対的な権限を持ちます。このユーザーはすべてのコマンド、ファイル、ディレクトリにアクセスし、システムを自分の好みに変更できます。
ルートユーザーは、制限なしでシステムを更新し、パッケージのインストールとアンインストール、他のユーザーの追加や削除、権限の付与や取り消し、およびその他のシステム管理タスクを実行できます。
ルートユーザーは、システム上でほぼすべてのことができます。LinuxやUNIX系のシステムの前提は、システムを完全に理解しているということです。とは言っても、ルートユーザーは簡単にシステムを壊すことができます。致命的なコマンドを実行するだけで、システムは故障します。
このため、ルートユーザーとしてコマンドを実行することは強く推奨されません。その代わりに、良い実践には、sudoユーザーを構成することが求められます。これは、通常のユーザーにsudo特権を付与し、一部のタスクをルートユーザーにのみ制限することです。
通常のユーザー
A regular user is a normal login user that can be created by a systems administrator. Usually, there is a provision to create one during the installation process. However, you can still create as many regular users as needed post-installation.
A regular user can only perform tasks and access files and directories for which they are authorized. If need be, a regular user can be granted elevated privileges to perform administrative-level tasks. Regular users can also be deleted or disabled when the need arises.
サービスアカウント
これは、ソフトウェアパッケージがインストールされるときに作成される非ログインアカウントです。このようなアカウントは、サービスがシステム内のプロセスを実行するために使用されます。これらは、システムでルーチンや管理のタスクを実行するために設計されていません。
ユーザー管理ファイル
Linuxシステムのユーザーに関する情報は、次のファイルに保存されます:
- /etc/passwdファイル
/etc/group ファイル - /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です。
- A brief description or summary of the user.
- これはユーザーのホームディレクトリへのパスです。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ファイル
このファイルには、グループアカウントの暗号化されたまたは「shadowed」パスワードが含まれており、セキュリティ上の理由から通常のユーザーからアクセスすることはできません。このファイルはルートユーザーと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つのコマンドは、ユーザーとそのホームディレクトリを完全に削除します。
結論
これで、オフィス環境でユーザーアカウントを管理する際に特に役立つユーザー管理コマンドの概要ができました。システム管理スキルを磨くために、たまに試してみてください。
Source:
https://www.tecmint.com/linux-user-account-management/