はじめに
Linux はマルチユーザー環境であり、ユーザー プロビジョニングはシステム管理において不可欠な責任です。システム管理者は、システム上のユーザーとグループを追加、削除、および管理します。
useradd
コマンドにはさまざまなオプションが用意されているため、ID とアクセス管理を自動化する包括的な方法が得られます。
この記事では、Linux でユーザーを作成および追加する方法について説明します。

前提条件
- コマンドを実行するためのターミナルへのアクセス
- sudo 権限または root を持つユーザーへのアクセス
- nano や Vim などのテキスト エディタ
- 基本的な Linux コマンド (Linux コマンドのチート シートを入手してください)。
useradd コマンドの構文
useradd
の基本構文 コマンドは:
useradd <options> <username>
コマンドを実行すると、次の値に従って新しいユーザー アカウントが作成されるか、既存のユーザーが更新されます。
- /etc/default/useradd -
useradd
のデフォルト値 コマンド - /etc/login.defs - ログイン パッケージの構成制御値
<options>
コマンドで提供され、事前定義された構成を更新またはオーバーライドします。
デフォルト値はシステムによって異なります。
ルールでは、ユーザー名を次のように制限しています:
- 1~32 文字の長さ
- ユーザー名は小文字またはアンダースコアで始まります。
- ユーザー名には、大文字と小文字、数字、ダッシュ、アンダースコアを自由に組み合わせて使用できます。
- ユーザー名はドル記号 (
$
) で終わることができます ).
ユーザー名の有効性を確認するための正規表現は次のとおりです:
[a-z_][a-z0-9_-]*[$]
注: Debian は、ユーザー名に関して異なる一連の規則に従います。ただし、提供されているルールは、すべてのシステムが問題を回避するための出発点として役立ちます。
さらに、コマンドは新しいユーザーのグループも作成します。新しいユーザーを追加するには、ユーザーとグループの情報を保存するファイルを変更するための sudo 権限が必要です。
useradd コマンド オプション
useradd
コマンドにはさまざまなオプションが付属しています。一般的なオプションを以下の表に示します:
オプション | 説明 |
---|---|
-b <directory> --base-dir <directory> | システムのデフォルトのベース ディレクトリを設定します。 |
-c <information> --comment <information> | 氏名や役割など、ユーザーの短い説明を設定します。 |
-d <home directory> --home-dir <home directory> | ユーザーのログイン ディレクトリ。 |
-D --defaults | デフォルト値を表示するか、他のオプションと組み合わせて変更します。 |
-e <YY-MM-DD> --expiredate <YY-MM-DD> | ユーザー アカウントの有効期限が切れる日付。 |
-f <days> --inactive <days> | パスワードの有効期限が切れた後、アカウントが非アクティブになる時間を日数で設定します。 |
-g <name or number> --gid <name or number> | ユーザーの初期ログイン グループを確立します。 |
-G <group1,group2,etc> --groups <group1,group2,etc> | ユーザーを追加のグループに追加します。 |
-k <skeleton directory> --skel <skeleton directory> | ファイルとディレクトリをユーザーのホーム ディレクトリにコピーします。 |
-m --create-home | ユーザーのホーム ディレクトリが存在しない場合は作成します。 |
-M --no-create-home | ホーム ディレクトリを作成しません (システム設定を上書きします)。 |
-o --non-unique | -u と組み合わせる 重複する UID を許可します。 |
-p <password> --password <password> | ユーザーのパスワードを設定します (非推奨)。 |
-r --system | システム アカウントを追加します。 |
-s <shell path> --shell <shell path> | ユーザーのログイン シェルを定義します。 |
-u <uid> --uid <uid> | 一意の数値 ID。 |
-U --user-group | ユーザーと同じ名前のグループを作成し、ユーザーをグループに追加します。 |
Linux での新規ユーザーの作成
Linux で新しいユーザーを作成すると、次のことが行われます。
1. 一意の UID と GID を提供する .
- 0 root 用に予約されており、自動的に割り当てられます。
- 1 ~ 999 システム アカウントとサービス用です。
- 1000 以上は通常のユーザー向けです。
注: 数値はオペレーティング システムによって異なります。例の値は Ubuntu のものです。
2. アカウント情報を保存するファイルを編集します。
- /etc/passwd - システムに登録されているすべてのユーザーを一覧表示します。
- /etc/shadow - 暗号化されたユーザー パスワードを保存します。
- /etc/group - ユーザー グループを定義する
- /etc/gshadow - 暗号化されたグループ パスワードを保存します。
3. グループを通じてホーム ディレクトリにユーザー権限を設定します。
注: Linux には、usermod を使用して既存のユーザーを変更するコマンドも用意されています。
以下の例に従って、Linux でユーザーを追加する方法を確認してください。
Linux でのユーザーの追加
Linux でユーザーを追加するには、ターミナルで次のコマンドを実行します:
sudo useradd <username>

プロンプトが表示されたら、sudo パスワードを入力して続行します。
オプションがなければ、useradd
コマンドは、/etc/useradd の定義済みオプションに基づいてユーザーを追加します ファイル。新しいユーザーはロックされた状態にあり、ロックを解除するにはパスワードが必要です。 passwd コマンドを使用してアカウントのロックを解除します:
sudo passwd <username>

このコマンドは、パスワードの入力と確認を求めます。
注: パスワードは重要なセキュリティの側面です。強力なパスワードのアイデアについては、ガイドをご覧ください。
パスワードを作成すると、新しいエントリが /etc/passwd に自動的に表示されます ファイル。情報を表示するには、cat コマンドを使用してファイルを表示し、ユーザーに対して grep を実行します。
sudo cat /etc/passwd | grep <username>
フィールドの形式は次のとおりです:

username:password:UID:GID:info:/home/directory:shell/path
x
文字は、セキュリティ上の理由からユーザーのパスワードを表し、非表示にします。暗号化されたパスワードは /etc/shadow にあります ファイル。
Linux でのユーザーの追加とホーム ディレクトリの作成
デフォルトでは、useradd
コマンドはホーム ディレクトリを作成しません。 /etc/passwd ファイルは絶対リンクを示しています (/home//
)ログイン後。
ユーザーとホーム ディレクトリを自動的に作成するには、-m
を使用します。 オプション:
sudo useradd -m <username>
ls コマンドでディレクトリが存在するかどうかを確認します:
ls -lah /home/<username>

このディレクトリには、/etc/skel からコピーされた初期化ファイルが含まれています。 ディレクトリ。
特定のホーム ディレクトリを持つユーザーの追加
Linux で特定のホーム ディレクトリを持つユーザーを追加するには、-m
を使用します。 -d
のオプション ディレクトリ パスを指定します:
sudo useradd -m -d <path> <username>

useradd
コマンドは、ディレクトリが既に存在することを警告し、/etc/skel からファイルをコピーしません .このオプションを使用して、カスタムまたは共有ホーム ディレクトリを作成します。
ホーム ディレクトリなしでユーザーを追加する
/etc/login.defs 構成 CREATE_HOME
変数値は yes
です 、useradd
コマンドは自動的にホーム ディレクトリを作成します。
デフォルト設定を上書きし、ホーム ディレクトリを持たないユーザーを追加するには、-M
を使用します オプション:
sudo useradd -M <username>

このコマンドは、ホーム ディレクトリを作成せずにユーザーを追加し、デフォルト設定を上書きします。
特定のユーザー ID を持つユーザーを追加する
特定のユーザー ID を持つユーザーを追加するには、-u
を使用します タグを付けて UID を指定します:
sudo useradd -u <uid> <username>
UID が一意でない場合、ターミナルはメッセージを出力し、ユーザーを追加しません。 id
で UID を確認します コマンド:
id <username>

通常のユーザーを示すには、1000 を超える UID を使用してください。
特定のグループ ID を持つユーザーを追加する
ユーザーを作成して特定のグループに追加するには、-g
を使用します タグ:
sudo useradd -g <group name or GID> <username>
グループ名または GID が存在する必要があります。それ以外の場合、コマンドはエラーをスローします。ユーザーの GID を確認します:
id <username>

出力には、ユーザーのグループ ID が表示されます。
複数のグループへのユーザーの追加
-G
を使用して複数のグループにユーザーを追加します オプションを使用して、グループ名または GID をカンマ区切りのリストにリストし、その後にユーザー名を続けます。例:
sudo useradd -G <group1,group2,group3> <username>
ユーザーのグループを確認します:
id <username>

グループが存在する必要があり、リストにスペースが含まれていてはなりません。グループが存在しない場合、コマンドはユーザーを追加しません。
注: 既存のユーザーをグループに追加するには、次のガイドを確認してください:Linux でユーザーをグループに追加する方法。
特定のログイン シェルを持つユーザーの追加
新規ユーザーはそれぞれ、デフォルトのログイン シェル (Bourne シェルや Bourne Again シェルなど) を取得します。ユーザーのシェルを明示的に定義するには、-s
を追加します タグを付けて、シェルのパスを提供します:
sudo useradd -s <shell path> <username>
たとえば、ユーザーを追加して Bash をデフォルトのログイン シェルとして設定するには、次を実行します。
sudo useradd -s /bin/bash <username>
/etc/passwd を確認してください シェルの選択を確認するためのファイル:
cat /etc/passwd | grep <username>

最後のフィールドには、新しいユーザーのログイン シェルが表示されます。
特定のコメントでユーザーを追加する
特定のコメントを持つユーザーを追加するには、以下を実行します:
sudo useradd -c <comment> <username>
コメントを表示するには、/etc/passwd を確認してください ユーザーのファイルと grep:
sudo cat /etc/passwd | grep <username>

コメントは説明のみを目的としており、実際の機能はありません。
アカウント有効期限のあるユーザーの追加
指定された日付の後にアカウントを自動的に削除するには、アカウントの有効期限があるユーザーを追加します:
sudo useradd -e <YY-MM-D> <username>
アカウントの有効期限情報を表示するには:
sudo chage -l <username>

出力には、アカウントの有効期限 (Account expires
) が出力されます。 )。一時的なアカウントにはこのオプションを使用してください。
無効化期間のあるユーザーの追加
ユーザーにパスワードの有効期限が設定されている場合、useradd
コマンドを使用すると、有効期限が切れた後にアカウントが非アクティブになるまでの期間を指定できます。アカウントの有効期限が切れた場合、有効期限により、ユーザーはパスワードを変更してアカウントを再開できます。
-f
を使用します コマンドを実行して日数を追加します:
sudo useradd -f <days> <username>
たとえば、パスワードの有効期限が切れてから 3 日後にアカウントを無効にするには、次を実行します。
sudo useradd -f 3 <username>
有効期限情報を表示:
sudo cat /etc/shadow | grep <username>

/etc/shadow ファイルには、アイドル時間 (最後のフィールドから 3 番目のフィールド) を含むパスワード情報が保存されます。
この方法を使用して、指定された期間内にパスワードを変更しないユーザーを無効にします。
非アクティブ化期間は適切なセキュリティ対策であり、推奨される期間は 35 日間です。アカウントの有効期限が切れるまでの最適な期間は、ビジネス要件によって決まります。値が低すぎる場合、結果は管理者にとってコストがかかりますが、値が高い場合はセキュリティに影響します。
システム ユーザーの追加
プログラムとシステムは、通常のユーザーとは異なるシステム ユーザー アカウントを作成します。 MySQL や Tomcat などのプログラムは、システム上で動作するために一意のユーザー アカウントを必要とし、デーモンは通常、インストール中にシステム ユーザーを作成します。
システム ユーザーを作成するには、-r
を使用します オプション:
sudo useradd -r <username>
ユーザーの情報を確認するには:
sudo cat /etc/passwd | grep <username>

ユーザーの UID は 1000 未満で、システム ユーザーであることを示しています。
adduser コマンド
adduser
コマンドは、ユーザーを Linux システムに追加する別の方法であり、useradd
の単純な対話型フロント エンドとして機能します。 .
ユーザーを追加するには、以下を実行します:
sudo adduser <username>
このコマンドは、ユーザーとグループをコンソールに出力します。
次に、コマンドは以下を要求します:
- 続行するにはパスワードを再入力する必要があります。
- ユーザー情報。データはコメントとして機能します (
useradd -c
と同じ) コマンドとオプション)
Y を押します をクリックしてプロセスを完了します。間違えた場合は N を押してください 正しい情報を再入力してください。

adduser
のパラメータを確認してください コマンド:
sudo cat /etc/passwd | grep <username>

このコマンドは、コマンドの実行中に入力されたすべての値と、デフォルトで Bash シェルを追加します。
複数のユーザーを追加
useradd
そしてadduser
コマンドは、一度に複数のユーザーを追加することをサポートしていません。複数のユーザーを追加するには、スクリプトまたはターミナルで直接 Bash for ループを使用して、ユーザー名のリストをループします。
注: useradd コマンドと adduser コマンドの違いを学びます。
たとえば、10 人のユーザーを追加するには、次のようにします。
1. テキスト エディターを使用してテキスト ファイルを作成します。
nano user_list.txt
2. ユーザー名をファイルに追加し、それぞれを新しい行に入力します。例:
alice
bob
charlie
dave
ファイルを保存して nano を閉じます (CTRL +X 、Y 、次に 入力 ).
3. for
を使用する ループしてファイル内の名前を一覧表示し、useradd
を実行します それぞれ:
for i in `cat ~/user_list.txt` ; do useradd $i ; done
4. 作成したユーザーを次のように表示します:
for i in `cat ~/user_list.txt` ; do id $i ; done

パスワードを追加するには、do
でコマンドを交換します passwd
を含む句 各ユーザーのパスワードを入力します。または、expect コマンドを使用して、パスワード作成プロセスを自動化します (特に多数のユーザーを操作する場合)。
結論
このガイドを完了すると、useradd
を使用して Linux システムに新しいユーザーを追加する方法がわかります。 指図。
次に、特権アクセス管理と、それがセキュリティ攻撃とデータ侵害の削減にどのように役立つかについて読んでください。