概要
Linuxシステムに新しいユーザーアカウントを作成するためのコマンドです。
アカウント名、ユーザーID(UID)、所属グループ、ホームディレクトリ、ログインシェルなどを細かく指定して作成できます。
注意点として、このコマンドを実行した直後のユーザーは「パスワードが未設定」の状態です。 ログイン可能にするには、別途 passwd コマンドでパスワードを設定する必要があります。
仕様(引数・オプション)
構文
# ユーザーの作成
useradd [オプション] [ユーザー名]
# デフォルト設定の表示・変更
useradd -D [オプション]
主なオプション(ユーザー作成時)
| オプション | 説明 |
| -c [コメント] | ユーザーの実名や電話番号などのコメント(GECOSフィールド)を設定します。 |
| -d [ディレクトリ] | ホームディレクトリのパスを指定します(デフォルトは /home/ユーザー名)。 |
| -m | ホームディレクトリが存在しない場合、自動的に作成します(必須級)。 |
| -g [グループID/名] | ユーザーのプライマリグループを指定します。 |
| -G [グループ名] | ユーザーが所属するセカンダリ(サブ)グループをカンマ区切りで指定します。 |
| -s [シェル] | ユーザーのログインシェルを指定します(例: /bin/bash)。 |
| -u [UID] | ユーザーID(UID)を数値で指定します。 |
| -U | ユーザー名と同じ名前のグループを作成し、それをプライマリグループにします。 |
| -e [日付] | アカウントの有効期限を指定します(形式: YYYY-MM-DD)。 |
| -f [日数] | パスワード期限切れ後、アカウントが無効になるまでの日数を指定します。 |
| -k [ディレクトリ] | ホームディレクトリ作成時にコピーされるスケルトンディレクトリを指定します。 |
| -r | システムアカウント(UIDが低い管理用ユーザー)として作成します。 |
主なオプション(-D デフォルト設定変更時)
useradd -D と組み合わせることで、今後作成されるユーザーの初期値を変更できます。
| オプション | 説明 |
| -s [シェル] | デフォルトのログインシェルを変更します。 |
| -g [グループ名] | デフォルトのプライマリグループを変更します。 |
| -d [ディレクトリ] | ホームディレクトリのベースパス(例: /home)を変更します。 |
| -e [日付] | デフォルトのアカウント有効期限を変更します。 |
| -f [日数] | デフォルトの無効化日数を変更します。 |
基本の使い方
最も基本的な作成方法です。通常はホームディレクトリを作成するために -m オプションを付けます。
# ホームディレクトリを作成しつつ、ユーザー 'sakura' を追加
sudo useradd -m sakura
# 作成されたユーザー情報を確認
id sakura
実行結果例
uid=1001(sakura) gid=1001(sakura) groups=1001(sakura)
※この時点ではパスワードがないため、sakura ユーザーはログインできません。
実践コマンド
詳細な設定を指定してユーザーを作成する
開発者ユーザーを作成する想定で、シェルを bash に、サブグループに wheel(管理者権限用)と docker を指定し、ホームディレクトリを明示的に作成します。
# シェル、グループ、ホーム作成を指定してユーザー 'kaito' を作成
sudo useradd -m -d /home/kaito -s /bin/bash -g developers -G wheel,docker kaito
# 設定内容を確認
id kaito
grep kaito /etc/passwd
実行結果例
uid=1002(kaito) gid=2000(developers) groups=2000(developers),10(wheel),999(docker)
kaito:x:1002:2000::/home/kaito:/bin/bash
ユーザー作成時のデフォルト設定を確認・変更する
毎回 -s /bin/bash を打つのが手間な場合、システムのデフォルト設定自体を変更します。
# 現在のデフォルト設定を表示
useradd -D
実行結果例
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
# デフォルトシェルを /bin/zsh に変更
sudo useradd -D -s /bin/zsh
# 変更後の確認
useradd -D
カスタムポイント
- ホームディレクトリの作成 (-m)多くのディストリビューション(特にCentOS/RHEL系以外)では、useradd 単体だとホームディレクトリが作られません。ログインして作業するユーザーを作る場合は必ず -m を付けてください。
- シェルの指定 (-s)デフォルトが /bin/sh になっている環境も多いです。モダンな操作性を確保するために /bin/bash や /usr/bin/zsh を指定することをお勧めします。
注意点
- パスワードの設定が必須useradd で作成されたユーザーは、パスワードが「ロックされた状態」または「未設定」です。作成後すぐに以下のコマンドを実行してください。Bash
sudo passwd [ユーザー名] - adduserコマンドとの違いDebian/Ubuntu系には adduser という対話形式の親切なコマンドがありますが、useradd はより低レベルなコマンドです。スクリプトによる自動化には useradd が向いています。
- グループの存在-g や -G で指定するグループは、事前に存在している必要があります。存在しない場合は groupadd コマンドで先に作成してください。
応用
ログインできないシステム管理用ユーザーを作成する
Webサーバーやデータベースの実行用ユーザーなど、ログインそのものを禁止したいアカウントを作成します。
# システムユーザーとして作成(-r)、シェルを無効化(-s /sbin/nologin)
sudo useradd -r -s /sbin/nologin -d /var/www/html -M webadmin
※ -M はホームディレクトリを作成しないオプションです(ディストリビューションにより挙動が異なる場合があるため、-m を付けないのが標準です)。
まとめ
useradd はLinuxのユーザー管理における基本コマンドです。
「-m でホームを作る」「-s でシェルを決める」「-G で権限を与える」の3点を押さえれば、実践的なユーザー作成が可能です。コマンド実行後は、忘れずに passwd コマンドでパスワードを設定してアカウントを有効化してください。
