【Linux】useraddコマンドでユーザーアカウントを作成する

目次

概要

Linuxシステムに新しいユーザーアカウントを作成するためのコマンドです。

アカウント名、ユーザーID(UID)、所属グループ、ホームディレクトリ、ログインシェルなどを細かく指定して作成できます。

注意点として、このコマンドを実行した直後のユーザーは「パスワードが未設定」の状態です。 ログイン可能にするには、別途 passwd コマンドでパスワードを設定する必要があります。

仕様(引数・オプション)

構文

# ユーザーの作成
useradd [オプション] [ユーザー名]

# デフォルト設定の表示・変更
useradd -D [オプション]

主なオプション(ユーザー作成時)

オプション説明
-c [コメント]ユーザーの実名や電話番号などのコメント(GECOSフィールド)を設定します。
-d [ディレクトリ]ホームディレクトリのパスを指定します(デフォルトは /home/ユーザー名)。
-mホームディレクトリが存在しない場合、自動的に作成します(必須級)。
-g [グループID/名]ユーザーのプライマリグループを指定します。
-G [グループ名]ユーザーが所属するセカンダリ(サブ)グループをカンマ区切りで指定します。
-s [シェル]ユーザーのログインシェルを指定します(例: /bin/bash)。
-u [UID]ユーザーID(UID)を数値で指定します。
-Uユーザー名と同じ名前のグループを作成し、それをプライマリグループにします。
-e [日付]アカウントの有効期限を指定します(形式: YYYY-MM-DD)。
-f [日数]パスワード期限切れ後、アカウントが無効になるまでの日数を指定します。
-k [ディレクトリ]ホームディレクトリ作成時にコピーされるスケルトンディレクトリを指定します。
-rシステムアカウント(UIDが低い管理用ユーザー)として作成します。

主なオプション(-D デフォルト設定変更時)

useradd -D と組み合わせることで、今後作成されるユーザーの初期値を変更できます。

オプション説明
-s [シェル]デフォルトのログインシェルを変更します。
-g [グループ名]デフォルトのプライマリグループを変更します。
-d [ディレクトリ]ホームディレクトリのベースパス(例: /home)を変更します。
-e [日付]デフォルトのアカウント有効期限を変更します。
-f [日数]デフォルトの無効化日数を変更します。

基本の使い方

最も基本的な作成方法です。通常はホームディレクトリを作成するために -m オプションを付けます。

# ホームディレクトリを作成しつつ、ユーザー 'sakura' を追加
sudo useradd -m sakura

# 作成されたユーザー情報を確認
id sakura

実行結果例

uid=1001(sakura) gid=1001(sakura) groups=1001(sakura)

※この時点ではパスワードがないため、sakura ユーザーはログインできません。

実践コマンド

詳細な設定を指定してユーザーを作成する

開発者ユーザーを作成する想定で、シェルを bash に、サブグループに wheel(管理者権限用)と docker を指定し、ホームディレクトリを明示的に作成します。

# シェル、グループ、ホーム作成を指定してユーザー 'kaito' を作成
sudo useradd -m -d /home/kaito -s /bin/bash -g developers -G wheel,docker kaito

# 設定内容を確認
id kaito
grep kaito /etc/passwd

実行結果例

uid=1002(kaito) gid=2000(developers) groups=2000(developers),10(wheel),999(docker)
kaito:x:1002:2000::/home/kaito:/bin/bash

ユーザー作成時のデフォルト設定を確認・変更する

毎回 -s /bin/bash を打つのが手間な場合、システムのデフォルト設定自体を変更します。

# 現在のデフォルト設定を表示
useradd -D

実行結果例

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
# デフォルトシェルを /bin/zsh に変更
sudo useradd -D -s /bin/zsh

# 変更後の確認
useradd -D

カスタムポイント

  • ホームディレクトリの作成 (-m)多くのディストリビューション(特にCentOS/RHEL系以外)では、useradd 単体だとホームディレクトリが作られません。ログインして作業するユーザーを作る場合は必ず -m を付けてください。
  • シェルの指定 (-s)デフォルトが /bin/sh になっている環境も多いです。モダンな操作性を確保するために /bin/bash や /usr/bin/zsh を指定することをお勧めします。

注意点

  1. パスワードの設定が必須useradd で作成されたユーザーは、パスワードが「ロックされた状態」または「未設定」です。作成後すぐに以下のコマンドを実行してください。Bashsudo passwd [ユーザー名]
  2. adduserコマンドとの違いDebian/Ubuntu系には adduser という対話形式の親切なコマンドがありますが、useradd はより低レベルなコマンドです。スクリプトによる自動化には useradd が向いています。
  3. グループの存在-g や -G で指定するグループは、事前に存在している必要があります。存在しない場合は groupadd コマンドで先に作成してください。

応用

ログインできないシステム管理用ユーザーを作成する

Webサーバーやデータベースの実行用ユーザーなど、ログインそのものを禁止したいアカウントを作成します。

# システムユーザーとして作成(-r)、シェルを無効化(-s /sbin/nologin)
sudo useradd -r -s /sbin/nologin -d /var/www/html -M webadmin

-M はホームディレクトリを作成しないオプションです(ディストリビューションにより挙動が異なる場合があるため、-m を付けないのが標準です)。

まとめ

useradd はLinuxのユーザー管理における基本コマンドです。

「-m でホームを作る」「-s でシェルを決める」「-G で権限を与える」の3点を押さえれば、実践的なユーザー作成が可能です。コマンド実行後は、忘れずに passwd コマンドでパスワードを設定してアカウントを有効化してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次