はじめに

こんにちは!今回はadduserコマンドについて解説します。

adduserは新しいユーザーアカウントを対話的に作成するコマンドです。サーバー管理やマルチユーザーシステムでユーザーを追加したい時に使う、管理者向けのコマンドですね。

useraddより優しい対話的インターフェース。初心者向けです。

adduserコマンドとは

adduserは、システムに新しいユーザーアカウントを作成する外部コマンドです。

useraddのラッパーコマンドで、より使いやすい対話的なインターフェースを提供します。ホームディレクトリの自動作成、初期ファイルのコピー、対話的なプロンプトなど、便利な機能が組み込まれています。Debianベースのシステムで標準的に使われます。

基本構文

1
adduser [オプション] username
  • username: 作成するユーザー名

主なオプション

オプション 説明
--home dir ホームディレクトリを指定
--shell shell ログインシェルを指定
--ingroup group プライマリグループを指定
--disabled-password パスワードなしで作成
--disabled-login ログイン無効で作成
--gecos comment 実名などのコメント
--help ヘルプを表示

使用例

例1: 基本的なユーザー作成

1
sudo adduser john

実行結果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
Adding user `john' ...
Adding new group `john' (1001) ...
Adding new user `john' (1001) with group `john' ...
Creating home directory `/home/john' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for john
Enter the new value, or press ENTER for the default
  Full Name []: John Smith
  Room Number []:
  Work Phone []:
  Home Phone []:
  Other []:
Is the information correct? [Y/n] y

対話的にユーザー情報を入力していきます。

例2: ホームディレクトリを指定して作成

1
sudo adduser --home /var/www/appuser appuser

実行結果:

1
2
3
4
5
Adding user `appuser' ...
Adding new group `appuser' (1002) ...
Adding new user `appuser' (1002) with group `appuser' ...
Creating home directory `/var/www/appuser' ...
...

カスタムホームディレクトリでユーザーを作成します。

例3: ログインシェルを指定

1
sudo adduser --shell /bin/bash developer

実行結果:

1
2
Adding user `developer' ...
...

特定のシェルを指定してユーザーを作成します。

例4: パスワードなしで作成

1
sudo adduser --disabled-password testuser

実行結果:

1
2
3
4
5
6
Adding user `testuser' ...
Adding new group `testuser' (1003) ...
Adding new user `testuser' (1003) with group `testuser' ...
Creating home directory `/home/testuser' ...
Copying files from `/etc/skel' ...
User information skipped.

パスワード設定なしでユーザーを作成します。テスト環境に便利です。

例5: ログインを無効にして作成

1
sudo adduser --disabled-login daemon_user

実行結果:

1
2
3
4
5
Adding user `daemon_user' ...
Adding new group `daemon_user' (1004) ...
Adding new user `daemon_user' (1004) with group `daemon_user' ...
Creating home directory `/home/daemon_user' ...
Copying files from `/etc/skel' ...

ログインを禁止したシステムユーザーを作成します。

例6: 複数ユーザーの一括作成

1
2
3
for user in alice bob charlie; do
  sudo adduser --disabled-password --gecos "" "$user"
done

実行結果:

1
2
3
4
5
6
Adding user `alice' ...
...
Adding user `bob' ...
...
Adding user `charlie' ...
...

スクリプトで複数ユーザーを一括作成できます。

例7: 既存グループに属するユーザー作成

1
sudo adduser --ingroup developers john_dev

実行結果:

1
2
3
4
Adding user `john_dev' ...
Adding new user `john_dev' (1005) with group `developers' ...
Creating home directory `/home/john_dev' ...
...

既存グループをプライマリグループとして設定します。

例8: システムユーザーの作成

1
sudo adduser --system --shell /usr/sbin/nologin --home /var/lib/myapp myappuser

実行結果:

1
2
3
4
5
Adding system user `myappuser' ...
Adding new group `myappuser' (998) ...
Adding new user `myappuser' (998) with group `myappuser' ...
Creating home directory `/var/lib/myapp' ...
Copying files from `/etc/skel' ...

サービス用のシステムユーザーを作成します。

Tips・注意点

root権限が必須

adduserはroot権限が必要です。

1
sudo adduser username

sudoを忘れずに。

useradduコマンドとの違い

adduserはDebian/Ubuntu系、useraddはRedHat系で標準です。

1
2
3
4
5
# Debian/Ubuntu
sudo adduser username

# RedHat/CentOS
sudo useradd username

ホームディレクトリの自動作成

adduserはホームディレクトリを自動で作成します。useraddでは-mオプションが必要です。

対話的入力をスキップする

--disabled-password--gecos ""で対話入力をスキップできます。

1
sudo adduser --disabled-password --gecos "" username

実践的な使い方

Webアプリケーション用ユーザー作成

1
2
3
4
5
6
sudo adduser --system \
  --group \
  --no-create-home \
  --shell /usr/sbin/nologin \
  --home /var/lib/myapp \
  myapp_user

Webアプリケーション専用のシステムユーザーを作成します。

開発環境でのユーザー作成

1
2
3
sudo adduser --home /home/dev_user \
  --shell /bin/bash \
  dev_user

開発者用のユーザーを作成します。

スクリプトでのバッチ処理

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/bash
USERS=("alice" "bob" "charlie")
GROUP="developers"

for user in "${USERS[@]}"; do
  sudo adduser --ingroup "$GROUP" \
    --disabled-password \
    --gecos "Developer User" \
    "$user"
  echo "Created user: $user"
done

複数ユーザーをスクリプトで一括作成します。

まとめ

adduserコマンドのポイント:

  • 新しいユーザーアカウントを作成するコマンド
  • 対話的: 親切な入力プロンプト
  • ホーム自動作成: ディレクトリを自動で作成
  • –disabled-password: パスワード設定をスキップ
  • –system: システムユーザーを作成
  • よく使う組み合わせ: sudo adduser username

ユーザー管理の基本。サーバー管理に必須のコマンドですよ!