Linuxで新しいユーザーを作成するには、useradd コマンドを使うのが最も確実な方法です。CentOS・RHEL・Ubuntu・Debianなど、どのディストリビューションでも同じ手順でユーザーアカウントを追加できます。このページでは、最短の作成手順から adduser との違い、ホームディレクトリ作成、パスワード設定、sudo 権限付与、作成後の確認方法まで順を追って解説します。
結論:最短でユーザーを作成する手順
とにかく今すぐユーザーを作成したい場合は、次の3行を順番に実行してください。
# 1. ユーザーを作成(ホームディレクトリも同時に作成)
sudo useradd -m -s /bin/bash username
# 2. パスワードを設定
sudo passwd username
# 3. sudo権限が必要な場合はグループに追加(Ubuntu/Debian系。RHEL/CentOS系はwheel)
sudo usermod -aG sudo username
username は作成したいユーザー名に置き換えてください。各行のオプションの意味やディストリビューションごとの違いは、以降で詳しく解説します。
useraddコマンドとは
useradd はLinuxの低レベルユーティリティで、/etc/passwd・/etc/shadow・/etc/group などのシステムファイルを直接操作してユーザーを作成します。オプションを明示的に指定する必要があるため、スクリプトや自動化に適しています。
useradd と adduser の違い
Linuxには useradd と adduser の2つのユーザー作成コマンドがあります。
| コマンド | 種類 | 特徴 |
|---|---|---|
useradd | 低レベル(C言語製) | オプション指定が必要。スクリプト・自動化向け。すべてのLinuxディストリビューションで利用可能。 |
adduser | 高レベル(Perlスクリプト) | 対話的に設定を入力できる。Debian・Ubuntu系のみ標準搭載。デフォルトでホームディレクトリを作成する。 |
UbuntuやDebianでは対話的に操作できる adduser が便利です。スクリプトや自動化には useradd を使うのが確実です。
注意が必要なのは、RHEL系にも adduser は存在するが、中身が useradd そのものだという点です。Rocky Linux 9 で確認すると、シンボリックリンクになっています。
# Rocky Linux 9 / RHEL 9 / AlmaLinux 9
$ ls -l /usr/sbin/adduser
lrwxrwxrwx 1 root root 7 Dec 29 2025 /usr/sbin/adduser -> useradd
# Debian 12 / Ubuntu
$ head -1 /usr/sbin/adduser
#! /usr/bin/perl
そのためUbuntuの感覚でRHEL系のサーバーに adduser alice と打つと、対話プロンプトは一切出ず、パスワード未設定のユーザーが黙って作られます。ディストリビューションをまたいで作業する場合は、常に useradd をオプション付きで明示するほうが事故がありません。
ディストリビューション別の既定値の違い
useradd は同じコマンド名でも、ディストリビューションによって既定の挙動が異なります。実際に各ディストリのコンテナで useradd alice(オプションなし)を実行して比較しました。
| 項目 | Ubuntu / Debian | RHEL / Rocky / AlmaLinux |
|---|---|---|
| ホームディレクトリ | 作られない(-m が必須) | 自動で作られる |
| 既定のログインシェル | /bin/sh | /bin/bash |
| 管理者グループ名 | sudo | wheel |
adduser | 対話式のPerlスクリプト(別物) | useradd へのシンボリックリンク |
# Ubuntu 24.04:-m を付けないとホームが無い
$ useradd alice
$ ls -d /home/alice
ls: cannot access '/home/alice': No such file or directory
$ getent passwd alice
alice:x:1001:1001::/home/alice:/bin/sh
# Rocky Linux 9:同じコマンドでホームもシェルも用意される
$ useradd alice
$ ls -d /home/alice
/home/alice
$ getent passwd alice
alice:x:1000:1000::/home/alice:/bin/bash
Ubuntuの getent の出力では、ホームディレクトリのパス(/home/alice)は記録されているのに実体が存在しません。ログインするとホームに移動できずエラーになります。この違いは /etc/default/useradd に書かれています。
# Ubuntu 24.04
$ grep -E '^(SHELL|HOME)' /etc/default/useradd
SHELL=/bin/sh
# Rocky Linux 9
$ grep -E '^(SHELL|HOME)' /etc/default/useradd
HOME=/home
SHELL=/bin/bash
どのディストリビューションでも同じ結果にしたいなら、既定値に頼らず明示的に指定してください。次の1行はUbuntu・Debian・RHEL系のいずれでも同じユーザーを作ります。
sudo useradd -m -s /bin/bash alice
構文(Syntax)
useradd [オプション] USERNAME
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-m | ホームディレクトリを作成 | sudo useradd -m alice |
-d DIR | ホームディレクトリのパスを指定 | sudo useradd -m -d /home/alice alice |
-s SHELL | ログインシェルを指定 | sudo useradd -m -s /bin/bash alice |
-g GROUP | プライマリグループを指定 | sudo useradd -m -g developers alice |
-G GROUPS | 補助グループを指定(カンマ区切り) | sudo useradd -m -G sudo,staff alice |
-c COMMENT | コメント(GECOS フィールド)を設定 | sudo useradd -m -c "Alice Dev Account" alice |
-u UID | ユーザーIDを指定 | sudo useradd -m -u 1500 alice |
-e DATE | アカウントの有効期限を設定(YYYY-MM-DD) | sudo useradd -m -e 2025-12-31 alice |
-r | システムユーザーとして作成(サービス用) | sudo useradd -r nginx |
基本の使い方
基本のユーザー作成(-m でホームディレクトリも作成)
sudo useradd -m username
-m オプションを付けると /home/username が自動的に作成されます。-m を省略するとホームディレクトリが作成されないため、通常のログインユーザーを作成する際は必ず付けてください。
シェルを指定してユーザーを作成(-s)
sudo useradd -m -s /bin/bash username
-s オプションでログインシェルを指定します。指定しない場合はシステムのデフォルトシェル(/bin/sh など)が設定されます。/bin/bash や /bin/zsh など、利用可能なシェルは /etc/shells で確認できます。
プライマリグループを指定して作成(-g)
sudo useradd -m -g groupname username
-g オプションでプライマリグループを指定します。指定したグループはあらかじめ存在している必要があります。省略した場合はユーザー名と同名のグループが自動作成されます。
補助グループに追加して作成(-G)
sudo useradd -m -G sudo username
-G オプションで補助グループ(サブグループ)を指定します。複数指定する場合はカンマ区切りで -G sudo,docker のように書きます。
パスワードを設定する
useradd コマンドだけではパスワードが設定されず、ユーザーはパスワード認証でログインできません。ユーザー作成後に必ず passwd コマンドでパスワードを設定してください。
sudo passwd username
実行すると新しいパスワードの入力を2回求められます。
New password:
Retype new password:
passwd: password updated successfully
sudo権限を付与する
作成したユーザーに管理者権限(sudo)を付与するには、sudo グループ(Debian/Ubuntu系)または wheel グループ(RHEL/CentOS系)に追加します。sudo 自体の構文やオプションはsudo コマンドの使い方で詳しく解説しています。
ユーザー作成時に sudo グループへ追加
# Ubuntu/Debian系
sudo useradd -m -s /bin/bash -G sudo username
# RHEL/CentOS系
sudo useradd -m -s /bin/bash -G wheel username
既存ユーザーに sudo 権限を後から付与
すでに作成したユーザーに後から sudo 権限を付与するには usermod を使います。
# Ubuntu/Debian系
sudo usermod -aG sudo username
# RHEL/CentOS系
sudo usermod -aG wheel username
作成したユーザーを確認する
id コマンドで確認
id username
出力例:
uid=1001(username) gid=1001(username) groups=1001(username),27(sudo)
UID・GID・所属グループをまとめて確認できます。
getent passwd で確認
getent passwd username
出力例:
username:x:1001:1001::/home/username:/bin/bash
コロン区切りで「ユーザー名:パスワード(x):UID:GID:コメント:ホームディレクトリ:シェル」が確認できます。
/etc/passwd を直接確認
grep username /etc/passwd
/etc/passwd にユーザー情報が追記されているかを確認できます。作成済みユーザーを一覧でまとめて確認したい場合はLinuxユーザー一覧の確認方法で解説しています。
ユーザー作成時のデフォルト設定
/etc/default/useradd
useradd のデフォルト動作(ホームディレクトリの親パス、デフォルトシェル、アカウント有効期限など)は /etc/default/useradd で管理されています。
cat /etc/default/useradd
出力例:
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
デフォルトのシェルを変更したい場合はこのファイルの SHELL= を編集します。
/etc/skel
-m でホームディレクトリを作成する際、/etc/skel/ の内容がそのままコピーされます。新規ユーザー全員に共通の設定ファイル(.bashrc、.profile など)を配置しておく場所です。
ls -a /etc/skel
ユーザーを削除する
ユーザーを削除するには userdel コマンドを使います。
ユーザーのみ削除(ホームディレクトリは残す)
sudo userdel username
ホームディレクトリごと削除(-r)
sudo userdel -r username
-r を付けるとホームディレクトリとメールスプールも一緒に削除されます。削除前に重要なファイルをバックアップしてください。
よくあるエラーと対処法
Permission denied
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
原因: useradd を sudo なしで実行しています。
対処: sudo useradd ... と sudo を付けて実行してください。
useradd: user ‘username’ already exists
useradd: user 'alice' already exists
原因: 同名のユーザーがすでに存在しています。
対処: id alice で確認し、既存ユーザーを使うか別名で作成してください。
ホームディレクトリが作成されない
原因: -m オプションを付けずに実行しています。
対処: sudo useradd -m username と -m を付けてください。すでに作成済みの場合は sudo mkhomedir_helper username または手動で sudo mkdir /home/username && sudo chown username:username /home/username で作成できます。
ログインシェルが意図したものにならない
原因: -s オプションを省略したか、/etc/default/useradd のデフォルトシェルが別のシェルに設定されています。
対処: sudo useradd -m -s /bin/bash username と明示的に指定するか、作成後に sudo usermod -s /bin/bash username で変更できます。
よくある疑問
useradd と adduser はどちらを使うべきか
Ubuntu/Debian環境で手動操作する場合は adduser が手軽です。スクリプトや自動化、またはCentOS/RHELなどすべてのLinux環境で動作させたい場合は useradd を使います。
-m を付けないとどうなるか
/home/username が作成されません。ユーザーはログインできますが、ホームディレクトリがない状態になります。通常のログインユーザーには -m を付けることを推奨します。
パスワードなしユーザーは作れるか
作れます。useradd 直後はパスワードが未設定(ロック状態)です。パスワードなしでSSH公開鍵認証のみを使う場合などはそのままで問題ありません。パスワード認証が必要な場合は sudo passwd username で設定してください。
sudo できるユーザーを作るにはどうするか
ユーザー作成時に -G sudo(Ubuntu/Debian)または -G wheel(RHEL/CentOS)を付けます。
sudo useradd -m -s /bin/bash -G sudo username
システムユーザーと通常ユーザーの違い
システムユーザーは -r オプションで作成し、UID が 1000 未満(システムによって異なる)になります。nginxやpostfixなどのサービス実行用アカウントで、ホームディレクトリやログインシェルを持たないのが一般的です。通常ユーザーは UID 1000 以上で、ログインして操作する人間のアカウントです。
実行例まとめ
通常ユーザーを作成してパスワードを設定する
sudo useradd -m -s /bin/bash alice
sudo passwd alice
sudo 権限付きユーザーを作成する
sudo useradd -m -s /bin/bash -G sudo alice
sudo passwd alice
サービス用システムユーザーを作成する
sudo useradd -r -s /usr/sbin/nologin myservice
関連コマンド
usermod: 既存ユーザーの属性を変更userdel: ユーザーを削除passwd: ユーザーのパスワードを設定または変更groupadd: グループを作成groups: ユーザーが所属するグループを確認
参考
- manページ: man7.org useradd(8)
- Shadow-utils プロジェクト: https://github.com/shadow-maint/shadow

コメント