【Linuxコマンド】useradd コマンドの使い方とよく使うオプション

概要

 
Linux ユーザを追加するためのコマンドです。
useradd コマンドを使うことで、新しいユーザアカウントを作成し、/etc/passwd/etc/shadow に必要な情報を書き込むことができます。
 

オプションを指定することで、ホームディレクトリの作成有無所属グループログインシェルUIDアカウント有効期限 などを細かく制御できます。
サーバ運用では、アプリケーション用ユーザや一時アカウントの作成などで頻繁に利用します。
 

フォーマット

 

useradd [オプション]... ユーザ名

 

最低限は「ユーザ名」だけ指定すればユーザを作成できますが、実務では -m(ホーム作成)や -s(ログインシェル)、-g / -G(グループ指定)などを組み合わせて使うことが多いです。
ディストリビューションや /etc/login.defs の設定により、デフォルトのホームディレクトリの場所やシェル、グループの扱いが変わる点には注意が必要です。

 

よく使うコマンド例

 

・ユーザの使うコマンドは /bin/bash とし、同時に home ディレクトリを作成する

sudo useradd -s /bin/bash -m sooota

sooota という名前のユーザを作成し、/home/sooota をホームディレクトリとして作成します。
環境によっては、ユーザ名と同名のグループ(sooota グループ)が自動的に作成され、そのグループを primary グループとして設定する挙動になります。

 

・ユーザ作成時に専用グループを作成し、既存のグループにも所属させる

sudo groupadd developers
sudo useradd -m -U -G developers sooota

1 行目で developers グループを作成し、2 行目でユーザ sooota を作成しています。
-U により、ユーザ名と同名のプライベートグループ(sooota)が自動作成され、そのグループが primary グループになります。
-G developers で、developers グループにも所属させています。

 

・ホームディレクトリの場所を指定してユーザを作成する

sudo useradd -m -d /var/www/appuser appuser

ホームディレクトリを /var/www/appuser として作成する例です。
Web アプリケーション用ユーザをアプリケーションディレクトリ配下にまとめたい場合などに利用します。

 

・ログインさせないサービス用ユーザ(システムユーザ)を作成する

sudo useradd -r -M -s /sbin/nologin appsvc

-r は「システムユーザ」として作成するオプション、-M はホームディレクトリを作成しない指定です。
さらに -s /sbin/nologin を指定することで、直接ログインできないサービス専用ユーザとして作成できます。
デーモンやバッチプロセス専用のユーザとしてよく使われるパターンです。

 

・UID を指定してユーザを作成する

sudo useradd -m -u 1101 appuser

-u で UID(ユーザ ID)を明示的に指定します。
複数サーバ間で UID を統一したい場合や、既存システムの UID と合わせる必要がある場合に利用します。
指定した UID が既に使用されているとエラーになるため、事前に getent passwd などで確認しておくと安心です。

 

・アカウントに有効期限を設定して作成する

sudo useradd -m -e 2025-12-31 tempuser

-e でアカウントの有効期限(YYYY-MM-DD)を指定します。
期間限定の一時アカウントなど、「期限が来たら自動的に無効化したい」ユーザを作る際に便利です。

 

・パスワード期限切れから無効化までの猶予日数を設定する

sudo useradd -m -f 30 tempuser

-f は、パスワード有効期限切れからアカウントが無効になるまでの猶予日数を指定します。
-1 を指定すると無期限(無効化しない)となります。
セキュリティポリシーで「一定期間ログインしていないアカウントは無効化する」といったルールがある場合に利用します。

 

・新規ユーザ作成時のデフォルト値を確認する

sudo useradd -D

-D を付けて実行すると、ホームディレクトリのベースパスやデフォルトシェル、スケルトンディレクトリなど、
useradd がユーザ作成時に使用する既定値(デフォルト設定)を確認・変更できます。
環境全体で一定のルールにしたい場合は、ここを確認しておくとよいです。

 

※ useradd でユーザを作成しただけでは、パスワードが未設定の場合が多いです。
ログイン可能にしたい場合は、passwd ユーザ名 でパスワードを設定してください。

 



オプション

 

short optionlong optiondescription
-u--uid作成するユーザの UID(ユーザ ID)を明示的に指定する
-g--gidprimary グループとして使用する GID またはグループ名を指定する
-G--groups補助グループ(secondary グループ)として追加所属させるグループをカンマ区切りで指定する
-c--comment/etc/passwd のコメント欄(ユーザ情報)を指定する
-d--homeホームディレクトリのパスを指定する
-m--create-homeホームディレクトリが存在しない場合に新規作成する
-M--no-create-homeホームディレクトリを作成しない
-s--shellログインシェルのパスを指定する
-e--expiredateアカウントの有効期限(日付 YYYY-MM-DD)を指定する
-f--inactiveパスワード期限切れからアカウント無効化までの猶予日数を指定する(-1 で無期限)
-r--system通常ユーザではなくシステムユーザとして作成する(低い UID 範囲を使用)
-k--skelホームディレクトリ作成時に使用する skeleton ディレクトリを指定する
-b--base-dirホームディレクトリのベースディレクトリを指定する(-d で明示した場合はそちらが優先)
-N--no-user-groupユーザ名と同名のグループを自動作成せず既存グループのみを使用する
-U--user-groupユーザ名と同名のプライベートグループを自動作成する
-o--non-unique既に使用されている UID であっても重複を許可してユーザを作成する(特別な用途向け)
-p--password暗号化済みのパスワード文字列を指定する(平文ではなく事前に暗号化した値を渡す)
-K--keylogin.defs の設定値を一時的に上書きしてユーザを作成する(例: -K UID_MIN=2000)
-D--defaults新規ユーザ作成時に使用されるデフォルト値を表示・設定する
-R--root指定したディレクトリをルートとみなしてその配下の /etc/{passwdshadowgroup} を操作する
-h--helpuseradd コマンドの使い方(ヘルプ)を表示して終了する
--versionuseradd コマンドのバージョン情報を表示して終了する
 

ここでは、useradd コマンドで利用頻度の高い主なオプションを TablePress の表にまとめています。
UID/GID・ホームディレクトリ・シェル・有効期限などを組み合わせることで、用途に応じたユーザアカウントを柔軟に作成できます。

詳細な挙動や、ディストリビューション固有の違いについては、Linux の man useradd
/etc/login.defs の設定もあわせて確認してください。

 

ブログランキングに参加しています。クリックして応援していただけると嬉しいです。

人気ブログランキング
ブログランキング・にほんブログ村へ
にほんブログ村