Linuxシステムにおけるユーザー管理は、セキュリティや運用効率を確保するうえで非常に重要です。ユーザーやグループはアクセス権限の単位であり、ファイルの所有権や実行可能な操作を制御する役割を担います。
Linux useraddコマンドによるユーザ作成
Linuxでユーザ作成をする際はroot権限でuseraddおよびpasswdコマンド使用します。
「ユーザ名:test-user」を例に作成方法を解説します。
useraddコマンドの初期設定確認
まず以下コマンドでuseraddの初期設定を確認します。
sudo useradd -D以下のように出力されることを確認してください。
GROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/shSKEL=/etc/skelCREATE_MAIL_SPOOL=no各項目の意味は以下の通りになります。
| 項目 | 内容 |
|---|---|
| GROUP | グループID。 |
| HOME | ホームディレクトリの作成場所。 |
| INACTIVE | パスワード期限が切れてから、アカウントが無効になるまでの期間 。(-1)は期限無し。 |
| EXPIRE | パスワードの有効期限。値が設定されていない場合は無期限。 |
| SHELL | ログイン用のシェル。 |
| SKEL | ホームディレクトリ作成時にコピーするファイルを格納するディレクトリを設定。 |
| CREATE_MAIL_SPOOL | メールスプールの作成有無。 |
useraddコマンドでユーザ作成
初期設定を確認したら、ユーザ(test-user)を作成します。
以下コマンドの場合は-mでホームディレクトリの作成を明示し、-sでログインシェルを指定しました。
sudo useradd -m -s /bin/bash test-user| オプション | 意味 |
|---|---|
| -m | ユーザのホームディレクトリを作成 |
| -s | ユーザのログインシェルを指定 |
オプションを指定しない場合はデフォルトの設定が適用されます。
passwdコマンドでパスワード設定
以下コマンドでパスワードを設定します。
sudo passwd test-user設定するパスワードを入力してください。
New password:Retype new password:/etc/passwdから作成ユーザ確認
作成したユーザは、/etc/passwdファイルから確認できます。
cat /etc/passwd | grep test-user以下のように表示されることを確認します。
test-user:x:1003:1004::/home/test-user:/bin/bash:で区切られた各項目の意味は以下の通りです。
| 項目 | 意味 |
|---|---|
| test-user | ユーザ名 |
| x | 暗号化されたパスワード。「 x 」はシャドウパスワードを使用している事を意味する。 |
| 1003 | ユーザID |
| 1004 | グループID |
| (空白) | コメント。コメントがない場合は表示されない。 |
| /home/test-user | test-userのホームディレクトリ |
| /bin/bash | ログインシェル |
ユーザ作成後、ログイン確認
suでtest-userにログインします。
su - test-userパスワードを入力します。
Password:ログイン後、ユーザがtest-userになっていることを確認します。
whoami実行結果が、以下の通り表示されればOKです。
test-userホームディレクトリが作成されていることを確認します。
ls -ld /home/test-user実行結果が、以下のように表示されればOKです。
drwxr-xr-x 2 test-user test-user 4096 Jun 12 00:00 /home/test-useruseraddコマンドの主なオプション一覧
useraddには様々なオプションが用意されています。
| オプション | 説明 | 使用例 |
|---|---|---|
-m | ホームディレクトリを作成する | useradd -m testuser |
-M | ホームディレクトリを作成しない | useradd -M sysuser |
-d | 特定のホームディレクトリを指定 | useradd -d /opt/home testuser |
-s | ログインシェルを指定 | useradd -s /bin/bash testuser |
-c | コメント(説明)を追加 | useradd -c "Developer" devuser |
-u | ユーザーID(UID)を指定 | useradd -u 1500 customuser |
-g | プライマリグループを指定 | useradd -g staff newuser |
-G | セカンダリグループを指定 | useradd -G wheel,devs newuser |
-r | システムアカウントを作成 | useradd -r sysaccount |
-e | アカウント有効期限を設定 | useradd -e 2025-12-31 limiteduser |
-f | パスワード失効後の非アクティブ日数を設定 | useradd -f 7 tempuser |
-D | デフォルト設定を表示 | useradd -D |
Linux useraddとadduserの違い
Linuxでユーザーを追加する際には主に2種類のコマンドがあります。
* useraddコマンド
-
低レベルのユーティリティであり、移植性が高くスクリプトに組み込みやすい。
-
実行時に以下のタスクを行う:
/etc/passwdへのエントリ追加/etc/shadowへの暗号化パスワード情報の追加- 必要に応じてホームディレクトリの作成/編集
* adduserコマンド
useraddのラッパーで、Perlスクリプトとして提供されることが多い。- 対話的にユーザー情報(フルネーム、電話番号など)を入力できる。
useraddに比べて高レベルで扱いやすいが、環境によっては存在しないこともある。- Debian/Ubuntu系でよく利用される。
かみ砕いて説明すると以下の通りです。
| useradd | adduser |
|---|---|
| 対話なしでユーザを作成する。 | 対話形式でユーザを追加する。 |
adduserの使い方を知りたい場合はこちらのリンクを参照してください。
まとめ
- useraddコマンドの
-Dオプションでユーザ追加の初期設定を確認できる。 -mオプションでホームディレクトリ作成を指定し、-sオプションでログインシェルを指定できる。- 作成したユーザは
/etc/passwdに追記される。 - 別途passwdコマンドでパスワードを指定する。
追加したユーザにsudo権限を付与する場合は、こちらのリンクを
作成したユーザを削除したい場合はこちらのリンクを参照してください。
以上で本記事の解説を終わります。
よいITライフを!