はじめに#
こんにちは!今回はadduserコマンドについて解説します。
adduserは新しいユーザーアカウントを対話的に作成するコマンドです。サーバー管理やマルチユーザーシステムでユーザーを追加したい時に使う、管理者向けのコマンドですね。
useraddより優しい対話的インターフェース。初心者向けです。
adduserコマンドとは#
adduserは、システムに新しいユーザーアカウントを作成する外部コマンドです。
useraddのラッパーコマンドで、より使いやすい対話的なインターフェースを提供します。ホームディレクトリの自動作成、初期ファイルのコピー、対話的なプロンプトなど、便利な機能が組み込まれています。Debianベースのシステムで標準的に使われます。
基本構文#
1
|
adduser [オプション] username
|
主なオプション#
| オプション |
説明 |
--home dir |
ホームディレクトリを指定 |
--shell shell |
ログインシェルを指定 |
--ingroup group |
プライマリグループを指定 |
--disabled-password |
パスワードなしで作成 |
--disabled-login |
ログイン無効で作成 |
--gecos comment |
実名などのコメント |
--help |
ヘルプを表示 |
使用例#
例1: 基本的なユーザー作成#
実行結果:
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権限が必要です。
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
ユーザー管理の基本。サーバー管理に必須のコマンドですよ!