useraddコマンドでユーザーを追加する方法|オプションやsudo権限の付与もコマンド


図解60p「Linuxサーバー構築入門マニュアル」無料
登録10秒/自動返信でDL/合わなければ解除3秒
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxコマンド, LinuxコマンドU-Z, ユーザ・グループ管理コマンド > useraddコマンドでユーザーを追加する方法|オプションやsudo権限の付与もコマンド
「Linuxでユーザーを追加したいけど、コマンドがよくわからない」
「useraddで追加したはずなのに、ログインできない」
サーバー管理の基本であるユーザー管理は、手順を間違えるとセキュリティ事故に直結します。特に、ユーザーを追加した直後にパスワードを設定し忘れたり、不要な権限を与えてしまったりするトラブルは、現場で非常に多く見かけます。

この記事では、Linuxでユーザーを追加する useradd コマンド の実践的な使い方を解説します。
基本的なユーザー追加から、ホームディレクトリやシェルの指定、グループの設定、sudo権限の付与、そしてサービス専用ユーザーの作り方まで、実務で必要なノウハウをすべて網羅しました。

useradd コマンドは root ユーザー、または sudo を付けた状態で実行する必要があります。一般ユーザーで実行すると「Permission denied」エラーになります。

useraddコマンドの基本構文

useradd は、Linuxシステムに新しいユーザーアカウントを追加するコマンドです。

# 基本書式 # useradd [オプション] ユーザー名

ユーザーを追加してからログインできるようにするまでの流れは、以下のとおりです。

1. useradd でユーザーを作成する
2. passwd でパスワードを設定する
3. 必要に応じてグループや権限を設定する

この流れを押さえたうえで、各ステップの詳細を見ていきましょう。

ユーザーを追加してパスワードを設定する(基本手順)

1. useraddでユーザーを作成する

もっとも基本的な使い方は、ユーザー名だけを指定する方法です。

# ユーザー tanaka を追加する # useradd tanaka

これだけでユーザーアカウントは作成されますが、この時点ではまだログインできません。パスワードが未設定のためです。

2. passwdでパスワードを設定する

ユーザーを追加したら、必ず passwd コマンドでパスワードを設定してください。これを忘れると、そのユーザーでログインすることができません。

# tanaka ユーザーのパスワードを設定する # passwd tanaka Changing password for user tanaka. New password: (パスワードを入力) Retype new password: (再入力) passwd: all authentication tokens updated successfully.

「passwd: all authentication tokens updated successfully.」と表示されれば設定完了です。

3. ユーザーが正しく作成されたか確認する

ユーザーの情報は /etc/passwd ファイルに記録されます。grep コマンドで確認しましょう。

# /etc/passwd でユーザー情報を確認する # grep tanaka /etc/passwd tanaka:x:1001:1001::/home/tanaka:/bin/bash

各フィールドの意味は左から順に以下のとおりです。

tanaka:ユーザー名
x:パスワード(暗号化パスワードは /etc/shadow に格納)
1001:UID(ユーザーID)
1001:GID(プライマリグループID)
(空欄):コメント(GECOS フィールド)
/home/tanaka:ホームディレクトリ
/bin/bash:ログインシェル

パスワードの暗号化情報は /etc/shadow に保存されています。確認するには root 権限が必要です。

# /etc/shadow でパスワードハッシュを確認する # grep tanaka /etc/shadow tanaka:$6$xxxxxxxx...:19789:0:99999:7:::

2番目のフィールドにハッシュ値が入っていれば、パスワードは正しく設定されています。!!! と表示される場合は、パスワードが未設定またはロックされている状態です。

主要オプションの解説

1. -m(ホームディレクトリを作成する)

useradd でユーザーを追加した際、ホームディレクトリが自動で作成されるかどうかは、ディストリビューション(Linuxの種類)によって異なります。

RHEL / CentOS / AlmaLinux / Rocky Linux:デフォルトでホームディレクトリが作成される(/etc/login.defs の CREATE_HOME が yes)
Ubuntu / Debian:-m オプションを付けないとホームディレクトリが作成されない

確実にホームディレクトリを作成したい場合は、-m オプションを明示的に指定するのが安全です。

# ホームディレクトリを明示的に作成する # useradd -m tanaka

2. -d(ホームディレクトリのパスを指定する)

デフォルトでは /home/ユーザー名 にホームディレクトリが作られますが、-d オプションで任意のパスを指定できます。

# ホームディレクトリを /opt/users/tanaka に指定する # useradd -m -d /opt/users/tanaka tanaka

3. -s(ログインシェルを指定する)

ログイン時に使用するシェルを指定します。指定しない場合は、/etc/default/useradd に定義されたデフォルトシェル(通常は /bin/bash)が適用されます。

# ログインシェルを /bin/bash に指定する # useradd -s /bin/bash tanaka # サービス専用ユーザー(ログイン不可)の場合 # useradd -s /sbin/nologin appuser

/sbin/nologin の活用については、後述の「サービス専用ユーザー」セクションで詳しく説明します。

4. -g(プライマリグループを指定する)

ユーザーのプライマリグループ(メイングループ)を指定します。指定しない場合は、ユーザー名と同じ名前のグループが自動で作られます。

# プライマリグループを "developers" に指定する # useradd -g developers tanaka

※指定するグループは、事前に groupadd コマンドで作成しておく必要があります。

5. -G(セカンダリグループを指定する)

プライマリグループとは別に、追加のグループ(セカンダリグループ)に所属させる場合は -G オプションを使います。複数のグループを指定する場合はカンマ(,)で区切ります。

# セカンダリグループに "wheel" と "developers" を指定する # useradd -G wheel,developers tanaka

6. -c(コメントを指定する)

-c オプションで、ユーザーのフルネームや説明を設定できます。この情報は /etc/passwd の5番目のフィールド(GECOSフィールド)に保存されます。

# コメント(フルネーム)を設定する # useradd -c "Tanaka Taro" tanaka

7. -e(アカウントの有効期限を設定する)

-e オプションで、アカウントが無効になる日付を YYYY-MM-DD 形式で指定できます。期間限定の外部委託スタッフのアカウントを作る際に便利です。

# アカウントの有効期限を 2026-12-31 に設定する # useradd -e 2026-12-31 tanaka

/etc/skel の役割

useradd でホームディレクトリが作成される際、/etc/skel(スケルトンディレクトリ)の中身がそのまま新しいユーザーのホームディレクトリにコピーされます。

# /etc/skel の中身を確認する # ls -la /etc/skel/ total 24 drwxr-xr-x 2 root root 4096 Jan 1 00:00 . drwxr-xr-x 76 root root 4096 Jan 1 00:00 .. -rw-r--r-- 1 root root 18 Jan 1 00:00 .bash_logout -rw-r--r-- 1 root root 141 Jan 1 00:00 .bash_profile -rw-r--r-- 1 root root 312 Jan 1 00:00 .bashrc

全ユーザーに共通の設定ファイル(たとえば .vimrc やプロキシ設定)を配布したい場合は、あらかじめ /etc/skel に配置しておくと、新規ユーザー作成時に自動でコピーされるため便利です。

sudo権限の付与(wheelグループへの追加)

一般ユーザーに sudo コマンドの実行権限を与えるには、そのユーザーを wheel グループに追加します。RHEL系(CentOS / AlmaLinux / Rocky Linux)のデフォルト設定では、wheel グループに所属するユーザーが sudo を使用できるようになっています。

ユーザー作成時に -G wheel を指定するのが最も簡単です。

# ユーザー作成時に wheel グループへ追加する # useradd -G wheel tanaka # passwd tanaka

既存のユーザーに後から sudo 権限を付与する場合は、usermod コマンドの -aG オプションを使います。

# 既存ユーザーを wheel グループに追加する(-a を忘れないこと) # usermod -aG wheel tanaka

注意:-a(append)を付けずに usermod -G wheel tanaka と実行すると、tanaka ユーザーのセカンダリグループが wheel だけに「上書き」されてしまいます。既存のグループ所属がすべて消えるため、-a は必ず付けてください。

sudo が正しく使えるか確認するには、以下のように実行します。

# tanaka ユーザーに切り替えて sudo を確認する # su - tanaka $ sudo whoami root

root と表示されれば、sudo 権限は正常に付与されています。

※Ubuntu / Debian では wheel ではなく sudo グループを使用します。usermod -aG sudo tanaka と指定してください。

usermodでユーザー情報を変更する

既に作成済みのユーザーの情報を変更するには、usermod コマンドを使います。オプションの指定方法は useradd とほぼ同じです。

# ログインシェルを変更する # usermod -s /bin/zsh tanaka # コメント(フルネーム)を変更する # usermod -c "Tanaka Jiro" tanaka # ホームディレクトリを変更する(-m で中身も移動) # usermod -d /home/tanaka_new -m tanaka # セカンダリグループを追加する(-a 必須) # usermod -aG docker tanaka

userdelでユーザーを削除する

不要になったユーザーアカウントは、userdel コマンドで削除します。

# ユーザーだけを削除する(ホームディレクトリは残る) # userdel tanaka # ユーザーとホームディレクトリを一緒に削除する # userdel -r tanaka

注意:-r オプションを付けると、ホームディレクトリとメールスプール(/var/spool/mail/ユーザー名)も同時に削除されます。削除前に、そのユーザーのホームディレクトリに重要なデータがないか必ず確認してください。

-r を付けずに削除した場合、ホームディレクトリは残ったままになります。所有者のいないファイル(UIDだけが表示される状態)がサーバー上に残り続けるため、不要であれば手動で削除してください。

【重要】/sbin/nologin でサービス専用ユーザーを作るセキュリティTips

Webサーバー(Apache / Nginx)やデータベース(MySQL / PostgreSQL)などのサービスは、専用のユーザーで実行するのがセキュリティ上の鉄則です。このようなサービス専用ユーザーは、人間がログインする必要がないため、ログインシェルに /sbin/nologin を指定してログインを禁止します。

# サービス専用ユーザーを作成する(ログイン禁止) # useradd -s /sbin/nologin -M appuser

-M オプションは、ホームディレクトリを作成しないという指定です。サービス専用ユーザーにはホームディレクトリが不要なケースがほとんどです。

/sbin/nologin が設定されたユーザーでログインしようとすると、以下のようにはじかれます。

# nologin ユーザーでログインを試みた場合 # su - appuser This account is currently not available.

このように、不要なログインを防ぐことで、万が一パスワードが漏洩しても被害を最小限に抑えられます。

トラブルシュート:よくあるエラーと対処法

1. 「useradd: user 'xxx' already exists」エラー

既に同じ名前のユーザーが存在する場合に表示されます。

# useradd tanaka useradd: user 'tanaka' already exists

対処法は以下のとおりです。

ユーザーの存在を確認する:id tanaka または grep tanaka /etc/passwd で確認する
別名にする:用途が異なる場合は、別のユーザー名で作成する
削除して再作成する:不要なユーザーであれば userdel tanaka で削除してから再度 useradd を実行する

2. ホームディレクトリが作成されない場合

useradd を実行したのにホームディレクトリが存在しない場合は、以下を確認してください。

-m オプションを付けたか:Ubuntu / Debian では -m を省略するとホームディレクトリが作成されない
/etc/login.defs の設定を確認する:CREATE_HOMEyes に設定されているか確認する

# CREATE_HOME の設定を確認する # grep CREATE_HOME /etc/login.defs CREATE_HOME yes

yes 以外の値になっている場合は、-m オプションを明示的に付けるか、この設定を yes に変更してください。

既にユーザーは作成済みだがホームディレクトリだけがない場合は、手動で作成して権限を設定します。

# ホームディレクトリを手動で作成する # mkdir /home/tanaka # cp -a /etc/skel/. /home/tanaka/ # chown -R tanaka:tanaka /home/tanaka # chmod 700 /home/tanaka

本記事のまとめ(useraddオプション早見表)

やりたいこと コマンド
ユーザーを追加する useradd ユーザー名
パスワードを設定する passwd ユーザー名
ホームディレクトリ付きで追加する useradd -m ユーザー名
ホームディレクトリのパスを指定する useradd -m -d /パス ユーザー名
ログインシェルを指定する useradd -s /bin/bash ユーザー名
プライマリグループを指定する useradd -g グループ名 ユーザー名
セカンダリグループを指定する useradd -G グループ名 ユーザー名
コメント(フルネーム)を指定する useradd -c "コメント" ユーザー名
有効期限を設定する useradd -e YYYY-MM-DD ユーザー名
ログイン不可ユーザーを作成する useradd -s /sbin/nologin ユーザー名
sudo権限を付与する(RHEL系) useradd -G wheel ユーザー名
既存ユーザーにグループを追加する usermod -aG グループ名 ユーザー名
ユーザーを削除する(ホームも削除) userdel -r ユーザー名
ユーザー情報を確認する grep ユーザー名 /etc/passwd

ユーザー管理を含むLinuxサーバー構築を体系的に学びたいと思いませんか?

useraddによるユーザー追加は、サーバー構築の入り口にすぎません。権限設定、ネットワーク、セキュリティまで含めた全体像を理解することで、初めて現場で通用するスキルになります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。



無料プレゼント
図解60p「Linuxサーバー構築入門マニュアル」
独学で詰まる前に、“型(手順書)”で最初の環境構築をサクッと終わらせましょう。
登録10秒/自動返信でDL/合わなければ解除3秒
無料で受け取る ※メールアドレスだけでもOK(必須項目は最小限)

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

<<関連記事>>
・pstree
・chsh
・finger
・du
・uname

図解60pのLinux無料マニュアル
登録10秒/自動返信でDL
無料で受け取る