Linuxにおけるコマンドラインからのユーザー管理方法

Linux管理の中心的な責任の一つは、ユーザーの管理です。コマンドラインを使用することで、ユーザーの作成はリモートまたはプログラム的に完了できます。ユーザーを作成したら、グループに追加したり、特権を上げたりできます。さらに、サーバー上で行われたことや潜在的な問題に関する監査記録を保持することができます。

ウェブ向けのソフトウェアを開発したりプログラミングをしたりしたことがある場合、ユーザーを信頼しないというポリシーに慣れているかもしれません。この考え方は、ユーザーの関与に関してコンピュータ使用の他の分野にも適用されます。アクセスを必要としているときに必要な人だけに与えてください。特権の過剰な委譲は、他人の情報やコアデータへの不特定かつ不正なアクセスを許す可能性があります。

既存のユーザーの表示

ユーザーを表示する最も簡単な方法の一つは、cat(連結)またはmore(ページャー)コマンドを使用してシステム上のユーザーのリストを見ることです。表示する必要があるファイルは「/etc/passwd」ファイルです。このファイルにはすべてのユーザーアカウントとユーーログイン情報が保存されています。

sudo cat /etc/passwd

useraddコマンドの利用

useraddは、ほとんどのディストリビューションで利用可能な低レベルのバイナリです。このコマンドは、adduserコマンドと比べてユーザーフレンドリーでなく直感的ではないため、通常はあまり使われません。しかし、違いはほとんどなく、どちらでも使用できます。

useraddの詳細を知るには、manコマンドを実行するか、--helpを追加して簡単な概要を取得します。

man useradd
useradd --help

linux-useradd-help

useraddを使用してユーザーを追加するには、useraddと作成したいログイン名を入力します。

sudo useradd --create-home testuser

上記の場合、「testuser」というユーザーが作成されます。デフォルトでは、このコマンドはユーザーを作成するだけで、他には何も行いません。このユーザーのためにホームディレクトリが必要な場合は、--create-homeフラグを追加してユーザーのためのホームディレクトリを作成します。

adduserコマンドの利用

adduserコマンドは、useraddコマンドと似たようにユーザーを作成するperlスクリプトです。このコマンドの違いは、対話型コマンドであり、パスワードやホームディレクトリのパスなどを設定するよう促される点です。 Red HatやCentOSのような一部のディストリビューションでは、adduserはuseraddへのシンボリックリンクであり、Arch Linuxのような他のディストリビューションでは、adduserはデフォルトでインストールされないパッケージとして提供されます。

このコマンドを使用すると、デフォルトでユーザーのログインを使用してユーザーのグループを作成します。他のデフォルトは通常、” /etc/default “にあるuseraddファイルで見つけることができます。

このファイルでは、useraddで作成されたユーザーに対してシェルやホームディレクトリなどのデフォルト設定を変更できます。

linux-useradd-conf

adduserコマンドを次のように実行します。

sudo adduser testuser

linux-adduser

これにより、設定したいデフォルトに関してのプロンプトが表示され、パスワードを求められます。

さらに読む: Linuxのターミナルでユーザーパスワードを管理する方法

パスワードとセキュリティ

ユーザーにパスワードを追加するには、passwdコマンドを実行する必要があります。

sudo passwd testuser

スーパーユーザー特権がない場合、passwdを実行するとログインしているユーザーのパスワードのみが変更されます。このコマンドは、複雑さのためにパスワードをテストします。Ubuntuでは、パスワード要件は「/etc/pam.d」にあるcommon-passwordファイルで設定されています。複雑さの更新に関する詳細は、pam-auth-updateのmanページで確認できます。

linux-pam-auth-man

ユーザー情報の更新

一度ユーザーがシステムに追加されると、「/etc/passwd」ファイルを確認してユーザーの情報や暗号化されたパスワードを確認できます。ユーザーに変更を加える必要がある場合は、usermodコマンドを使用する必要があります。

linux-usermod-man

例えば、上で作成したtestuser4アカウントのユーザーIDを変更するには、次のコマンドを実行します。

sudo usermod -u 2022 testuser2

その後、「/etc/passwd」ファイルで変更を確認できます。

ログイン名やこの場合のユーザーIDなど、重要な情報を変更する際は注意が必要です。これらの項目が変更された場合に何をする必要があるかを確認するために、usermodのmanページを見てください。

ユーザーをグループに追加する

特定のタスクを実行するために必要な権限を持たせるために、ユーザーをグループに追加する必要がある場合があります。

ユーザーをグループに追加するには:

sudo usermod -a -G groupname username

-aフラグは、ユーザーのグループに「追加」するために必要です。これがないと、ユーザーがスーパーユーザー権限を持つ必要がある場合に、ユーザーが「sudo」グループから削除されるリスクがあります。

また、gpasswdコマンドを使用して、ユーザーをグループに追加/削除することもできます。

sudo gpasswd -a username groupname

ユーザーをグループから削除するには:

sudo gpasswd -d username groupname

ユーザーの削除

他のユーザーコマンドと同様に、ユーザーを削除するためのコマンドには「user」が接頭辞としてつきます。この場合、userdelコマンドを使用する必要があります。

linux-userdel-man

userdelは、そのユーザーのアカウントを使用しているプロセスがある場合、ユーザーを削除しないことに注意してください。

sudo userdel testuser4

ユーザーログの表示

ディストリビューションに応じて、ユーザーログインを確認するために「/var/log」にあるauthログまたはsecureログをチェックします。このログファイルは、システム上でログインが発生するたびに記録します。これは、侵害が発生した場合の監視イベントや、物事が正しく機能しているかを確認するための重要な要素です。

sudo tail /var/log/auth.log

ユーザー管理は、複数の人があなたのシステムを使用する場合にLinuxサーバーを管理する上で重要な部分です。コマンドラインを使用すると、ユーザーを迅速に管理できるだけでなく、アカウントの作成と変更の履歴を保持できます。複数のアカウントが必要な場合は、シェルスクリプトでの自動化が最適な使用法かもしれません。

いずれにせよ、定期的にアカウントを確認し、不要なアカウントを削除することを確実に行ってください。アクセスは、現在アクセスが必要な人のみに付与され、ログを頻繁に監視してください。