Ubuntuでユーザーを追加・削除・切り替えするコマンドは、VPSやサーバーを運用する上で最初に覚えるべき基本操作のひとつです。結論から言うと、ユーザー追加は adduser ユーザー名 が最もシンプルで確実な方法です。
この記事では、adduser・useradd・usermod・userdel・su を実際に Ubuntu 24.04 の Docker 公式イメージで動かし、コマンドの実出力と違いをまとめました。
この記事のポイント
- 初心者には
adduser(高レベル)がおすすめ。ホームディレクトリや基本設定を自動で行ってくれる useraddは低レベルコマンド。-m -s /bin/bashを忘れるとホームや bash が設定されない- Ubuntu 22.04 と 24.04 で
adduserの出力形式が変わっている(24.04 はinfo:プレフィックス付き) - sudo グループに追加するには
usermod -aG sudo ユーザー名。-aG の -a を忘れると既存グループが消える deluser --remove-homeでホームごと削除できるが、Ubuntu 24.04 ではperlパッケージが必要
目次
- 現在のユーザーを確認する
- ユーザーを追加する(adduser / useradd)
- ユーザーを切り替える(su / sudo)
- ユーザー情報を変更する(usermod)
- ユーザーを削除する(userdel / deluser)
- VPS運用での活用:deployユーザー作成パターン
- よくあるエラーと解決策
- まとめ
前提環境
本記事のコマンドはすべて以下の環境で実行確認しています。
- OS:Ubuntu 24.04.4 LTS(Noble Numbat)— Docker 公式イメージ
ubuntu:24.04で実行 - 実行ユーザー:root(sudo なし。一般ユーザーで実行する場合は各コマンドの頭に
sudoをつけてください) - adduser パッケージ:3.137ubuntu1
- passwd(useradd 収録):1:4.13+dfsg1-4ubuntu3.2
注意
Ubuntu の最小インストールイメージ(ubuntu:24.04 の Docker 公式イメージ含む)には adduser パッケージが同梱されていない場合があります。command not found と表示されたら apt-get install adduser でインストールしてください。
現在のユーザーを確認する
まず、今どんなユーザーがシステムにいるかを確認しましょう。使うコマンドは whoami・id・getent passwd の3つです。
①whoami — 現在のユーザー名を確認
ubuntu
$ id
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),27(sudo),100(users)
id コマンドは UID(数値のユーザーID)と所属グループを一覧で表示します。27(sudo) が含まれていれば sudo 権限があります。
②getent passwd — ユーザー一覧を確認
システムに登録されているユーザーを全て確認するには getent passwd を使います。/etc/passwd を直接 cat するより getent のほうが推奨されています(LDAP 等の外部ディレクトリも含めて検索するため)。
ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
# /etc/passwd のフィールド(参考)
# ユーザー名:パスワード(x):UID:GID:GECOS:ホームdir:シェル
$ getent passwd root
root:x:0:0:root:/root:/bin/bash
UID 1000 以上が通常の一般ユーザー、0〜999 がシステムユーザーです(/etc/login.defs の UID_MIN=1000 で定義)。UID 65534 は nobody ユーザーなので除外しています。

ユーザーを追加する(adduser / useradd)
Ubuntu でユーザーを追加するコマンドは adduser と useradd の2種類あります。どちらも内部では useradd が動きますが、初心者には adduser が断然おすすめです。
①adduser(高レベルコマンド)— 推奨
adduser は Perl スクリプトで書かれた高レベルコマンドです。ホームディレクトリの作成・デフォルトシェルの設定・/etc/skel のコピーを全て自動でやってくれます。
info: Adding user `taro’ …
info: Selecting UID/GID from range 1000 to 59999 …
info: Adding new group `taro’ (1001) …
info: Adding new user `taro’ (1001) with group `taro (1001)’ …
info: Creating home directory `/home/taro’ …
info: Copying files from `/etc/skel’ …
New password:
Retype new password:
passwd: password updated successfully
Full Name []: Taro Yamada
Room Number []:
…
Is the information correct? [Y/n] Y
$ id taro
uid=1001(taro) gid=1001(taro) groups=1001(taro),100(users)

実際に Docker コンテナで実行した結果です(上の図)。Ubuntu 24.04(adduser 3.137ubuntu1)では各ステップが info: プレフィックス付きで表示されます。
スクリプトで自動実行する場合は --disabled-password と --gecos を使うと対話入力をスキップできます。
$ adduser –disabled-password –gecos ‘Taro Yamada’ taro
info: Adding new user `taro’ (1001) with group `taro (1001)’ …
info: Creating home directory `/home/taro’ …
②useradd(低レベルコマンド)— オプション注意
useradd は C で書かれた低レベルコマンドで、出力なし(サイレント)で動きます。-m を忘れるとホームディレクトリが作成されず、-s /bin/bash を忘れるとシェルが /bin/sh になります。
$ useradd -m -s /bin/bash taro
# (出力なし。これが正常)
$ id taro
uid=1001(taro) gid=1001(taro) groups=1001(taro)
# パスワードを設定(作成直後はロック状態)
$ passwd taro
New password:
Retype new password:
passwd: password updated successfully
useradd で作成したユーザーは users グループに自動追加されません(adduser との違い)。必要であれば usermod -aG users taro で追加します。

Ubuntu 22.04 と 24.04 の違い
実際に2つのバージョンで adduser を実行してみると、出力形式が変わっていることがわかりました。

Ubuntu 22.04 では adduser 3.118ubuntu5(info: なし)、Ubuntu 24.04 では adduser 3.137ubuntu1(info: プレフィックス付き)です。また、24.04 では users グループへの自動追加が行われるようになりました。スクリプトでログをパースしている場合は注意が必要です。
ユーザーを切り替える(su / sudo)
ユーザーの切り替えには su コマンドを使います。Ubuntu では su は util-linux 2.39.3 に含まれています。
①su — 別ユーザーに切り替え
$ su – taro
Password:
taro@myserver:~$
# ログインシェルなし(環境変数を引き継がない)
$ su taro
Password:
taro@myserver:/home/ubuntu$
# root に切り替え(パスワードが必要)
$ su –
Password:
root@myserver:~#
su -(ハイフンあり)が推奨です。ハイフンをつけると切り替え先ユーザーのログインシェルとホームディレクトリを正しく引き継ぎます。ハイフンなしでは元のユーザーの環境変数が残り、予期せぬ動作の原因になることがあります。
Ubuntu のデフォルトは root パスワードなし
Ubuntu のデフォルトインストールでは root のパスワードが設定されていないため、su - は失敗します。root 権限が必要な操作は sudo -i または sudo コマンド を使いましょう。
②sudo — root 権限でコマンド実行
sudo グループに属するユーザーは sudo で root 権限のコマンドを実行できます。
$ sudo -i
[sudo] password for ubuntu:
root@myserver:~#
# 特定のユーザーとしてコマンドを実行
$ sudo -u taro id
uid=1001(taro) gid=1001(taro) groups=1001(taro)
ユーザー情報を変更する(usermod)
既存ユーザーの情報変更には usermod コマンドを使います。
①sudo グループに追加する — usermod -aG
VPS 上で管理者権限を持つユーザーを作る場合、sudo グループへの追加が必要です。
# (出力なし。正常)
$ groups taro
taro : taro sudo users
# 確認:/etc/group を直接見ても確認できる
$ grep ‘^sudo:’ /etc/group
sudo:x:27:ubuntu,taro
実際の Docker 環境での実行結果(usermod -aG sudo testuser1 後):testuser1 : testuser1 sudo users と表示されました。
-aG の「-a」を絶対に忘れない
usermod -G sudo taro のように -a を省略すると、既存の全グループが削除され sudo だけになります。ユーザーが adm や cdrom グループに入っていた場合も全て失います。-aG(append + groups)とセットで覚えてください。
②シェルを変更する — usermod -s
$ usermod -s /bin/bash taro
# 確認
$ grep taro /etc/passwd
taro:x:1001:1001::/home/taro:/bin/bash
③アカウントをロック・ロック解除する
$ passwd -l taro
passwd: password changed.
# 状態確認(L=Locked)
$ passwd -S taro
taro L 2026-06-13 0 99999 7 -1
# ロック解除
$ passwd -u taro
passwd: password changed.
passwd -S の出力の2番目フィールド:L(Locked)、P(有効なパスワードあり)、NP(パスワードなし)を意味します。
ユーザーを削除する(userdel / deluser)
ユーザーの削除には userdel(低レベル)と deluser(高レベル)があります。
①userdel — ホームは残る
deltest1 ubuntu
$ userdel deltest1
# (出力なし)
$ ls /home/
deltest1 ubuntu
# ホームディレクトリが残ったまま!
実際に Docker で実行すると、userdel はユーザーを /etc/passwd から削除しますが、ホームディレクトリは削除しません。ホームも消したい場合は userdel -r か deluser --remove-home を使います。
②deluser –remove-home — ホームごと削除
info: Looking for files to backup/remove …
info: Removing files …
info: Removing user `taro’ …
$ ls /home/
ubuntu
# /home/taro が削除された
Ubuntu 24.04 の注意:deluser –remove-home には perl が必要
Ubuntu 24.04 の最小インストール環境では deluser --remove-home に perl パッケージが必要です。fatal: In order to use the --remove-home ... you need to install the 'perl' package と表示された場合は apt-get install perl を実行してください。これは実際に Docker 環境で確認したエラーです。

VPS運用での活用:deployユーザー作成パターン
VPS にアプリをデプロイする場合、root 直接操作は避けて専用の deploy ユーザーを作るのが定石です。実際に Ubuntu 24.04 の Docker 環境で実行したフローを紹介します。

$ adduser –disabled-password –gecos ‘Deploy User’ deploy
info: Creating home directory `/home/deploy’ …
# 2. sudo グループに追加(必要な場合)
$ usermod -aG sudo deploy
# 3. .ssh ディレクトリを作成(権限 700 が重要)
$ mkdir -p /home/deploy/.ssh && chmod 700 /home/deploy/.ssh
# 4. ed25519 鍵を生成
$ ssh-keygen -t ed25519 -f /home/deploy/.ssh/id_ed25519 -N ” -C ‘deploy@myserver’
Your public key has been saved in /home/deploy/.ssh/id_ed25519.pub
# 5. オーナーを deploy ユーザーに変更
$ chown -R deploy:deploy /home/deploy/.ssh
# 6. 権限確認
$ stat -c ‘%n: %a (%U:%G)’ /home/deploy/.ssh /home/deploy/.ssh/id_ed25519.pub
/home/deploy/.ssh: 700 (deploy:deploy)
/home/deploy/.ssh/id_ed25519.pub: 644 (deploy:deploy)
実測値:鍵フィンガープリントは SHA256:CjGOEVQIdFcxeHupC7Jrux1eYs9l5NtiBldQ4XQYHU0(ed25519 256bit)、公開鍵サイズは 97 バイトでした。.ssh ディレクトリの権限が 700、秘密鍵が 600 以外だと SSH 接続が拒否されるので注意してください。
よくあるエラーと解決策
①「adduser: command not found」
Ubuntu の最小インストール環境に adduser パッケージが含まれていない場合に発生します。
$ apt-get update && apt-get install adduser
②「usermod: user ‘xxx’ does not exist」
ユーザーが作成されていないか、ユーザー名のタイプミスです。getent passwd ユーザー名 でユーザーの存在を確認してから実行してください。
③「deluser –remove-home」が fatal エラーになる
Ubuntu 24.04 の Docker や最小インストール環境で deluser --remove-home を実行すると、fatal: ... you need to install the 'perl' package と表示されます。
features, you need to install the `perl’ package.
$ apt-get install perl
$ deluser –remove-home taro
info: Removing user `taro’ …
または perl を使わずに手動で削除することもできます。
$ userdel -r taro
# ホームディレクトリも削除される
④「usermod -aG sudo」後に sudo が使えない
グループ変更は次のログイン時に反映されます。現在のセッションで即座に反映させるには newgrp sudo を実行するか、一度ログアウトして再度ログインしてください。
# または一度ログアウトして再ログイン
$ groups
taro sudo users
まとめ
Ubuntu のユーザー管理コマンドをまとめます。
| 操作 | コマンド | 備考 |
|---|---|---|
| ユーザー追加(推奨) | adduser ユーザー名 |
ホーム・bash 自動設定。adduser パッケージ必要 |
| ユーザー追加(低レベル) | useradd -m -s /bin/bash ユーザー名 |
-m -s を忘れずに |
| ユーザー確認 | id ユーザー名 / getent passwd |
UID・GID・グループを確認 |
| ユーザー切り替え | su - ユーザー名 |
ハイフンをつけてログインシェルで切り替え |
| sudo グループに追加 | usermod -aG sudo ユーザー名 |
-a(append)を忘れると既存グループが消える |
| シェル変更 | usermod -s /bin/bash ユーザー名 |
useradd で作成したユーザーに必要な場合が多い |
| アカウントロック | passwd -l ユーザー名 |
解除は passwd -u |
| ユーザー削除 | userdel ユーザー名 |
ホームは残る。-r でホームも削除 |
| ユーザー削除(高レベル) | deluser --remove-home ユーザー名 |
24.04 では perl 必要 |
コマンド解説は以上です。VPS を借りてサーバーを運用し始めると、ここで説明した操作は毎日のように使うことになります。特に adduser での deploy ユーザー作成と usermod -aG sudo の組み合わせは、初期セットアップの定番パターンとして身につけておきましょう。
VPS の選び方やサーバー初期設定について詳しく知りたい方は、下記の記事も参考にしてください。
- Ubuntu サーバーの初期設定まとめ
- Vultr vs DigitalOcean — VPS 速度・価格比較(2026年実測)
- Ubuntu の SSH 設定:鍵認証・ポート変更・fail2ban まとめ


コメント