連載
» 2018年11月02日 05時00分 公開

Linux基本コマンドTips(255):【 useradd 】コマンド――新規ユーザーを作成する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、新規ユーザーを作成する「useradd」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、新規ユーザーを作成する「useradd」コマンドです。

useraddコマンドとは?

 「useradd」は新規ユーザーを作成し、ユーザーごとの設定を決めるコマンドです。作成時のデフォルト値をあらかじめ定めておくこともできます。

 Ubuntuには、useraddコマンドと似たコマンドがあります。対話形式で設定内容などを確認しながらユーザーを作成できるadduserコマンドです(連載第255回、※1)。adduserでは、ホームディレクトリの作成とパスワードの設定も同時に進めることができます。

 CentOSにも同名のadduserコマンドがありますが、こちらは、useraddへのシンボリックリンクです。機能は変わりません。

※1 adduser(/usr/sbin/adduser)はPerlスクリプトで記述されており、内部でuseraddコマンドを呼び出している。





useraddコマンドの書式

useradd [オプション] ユーザー名

※[ ]は省略可能な引数を示しています。





useraddの主なオプション

短いオプション 長いオプション 意味
-m --create-home ユーザーのホームディレクトリが存在しない場合、作成する
-M --no-create-home ユーザーのホームディレクトリを作成しない
-b --base-dir BASE_DIR ホームディクトリのベースとなるディレクトリ(/homeなど)
-d ディレクトリ --home-dir ディレクトリ ユーザーのホームディレクトリ(通常はユーザー名と同じにする)
-k ディレクトリ --skel ディレクトリ ひな型ディレクトリ(デフォルトは/etc/skel)を指定する(※2)

※2 -kを指定してもしなくても、ひな型ディレクトリにあるファイルがホームディレクトリにコピーされる



useraddの主なオプション(ユーザーIDとグループ関係)

短いオプション 長いオプション 意味
-u ユーザーID --iud ユーザーID 作成するユーザーのユーザーIDを指定する(指定しなかった場合、他と重複しない値を自動で設定する)
-o --non-unique ユーザーIDが同じユーザーの作成を許す(固有のユーザーIDは設定できない)
-g グループ --gid グループ ユーザーが属するプライマリグループの名前またはグループIDを指定する
-G グループリスト --groups リスト ユーザーが属するセカンダリグループのリストを指定する(空白を含まず「,」区切りで指定)
-U --user-group ユーザーと同じ名前のグループを作成する
-N --no-user-group ユーザーと同じ名前のグループを作成しない

useraddの主なオプション(その他)

短いオプション 長いオプション 意味
-s シェル --shell シェル ユーザーのログインシェル(フルパスで指定)を指定する(指定しなかった場合、デフォルト設定を用いる)
-p パスワード --password パスワード cryptで暗号化されたログインパスワードを利用できるようにする(「-p '暗号化された文字列'」のように指定する)
-e 日付 --expiredate 日付 ユーザーのアカウントが期限切れとなる日付を指定する
-f 日数 --inactive 日数 ユーザーのパスワードが期限切れになってからアカウントが無効化されるまでの日数(デフォルト値は「-1」:無効化しない)
-c コメント --comment コメント /etc/passwdのコメント欄の内容を指定する(GECOSフィールド:ユーザーの所属やフルネームなどを書く)
-l --no-log-init ユーザーをlastlogとfaillogのデータベースに追加しない
-r --system システムアカウントを作成する(※3)
-Z ユーザー --selinux-user ユーザー SELinuxのユーザーマッピングに指定したユーザーを指定する
-K キー=値 --key キー=値 /etc/login.defsに保存されている値を一時的に置き換える(詳しくは本文を参照
-D --defaults デフォルト設定を表示する、または変更する(「-b」「-e」「-f」「-g」「-s」と組み合わせる(詳しくは本文を参照

※3 -rを指定すると、ユーザーIDを/etc/login.defのSYS_GID_MAXに従って作成する。ホームディレクトリは作成されない。ログインもできないように設定したい場合は「-s /sbin/nologin」を併用する。





新規ユーザーを作成する

 「useradd ユーザー名」で新しいユーザーを作成します。

 CentOS(CentOS 7)の場合、デフォルトのシェルは「/bin/bash」です。実行するとホームディレクトリを作成し、設定ファイル(.bashrcなど)をコピーして動作を終えます。

 Ubuntu(18.04 LTS)の場合、デフォルトのシェルは「/bin/sh」で、ホームディレクトリを作成しません。シェルを変更したい場合は「-s」オプション、ホームディレクトリを作成したい場合は「-m」オプションを同時に指定してください。

 実行にはルート権限が必要です。なお、作成したユーザーがログインできるようにするには、passwdコマンド(第70回)でパスワードを設定する必要があります。

 画面1では、CentOS 7の例を示しました。useraddコマンドを使ってユーザーを作成しています。画面1ではあらかじめsuコマンド(第67回)を使ってrootユーザーとして実行しています。

コマンド実行例

useradd ユーザー名

(ユーザーを作成する)

useradd -s /bin/bash -m ユーザー名

(ユーザーを作成する、シェルは/bin/bashとし、ホームディレクトリも同時に作成する)


画面1 画面1 CentOS 7で新規ユーザーを作成したところ

 Ubuntuの場合、useraddコマンドではなく、adduserコマンドを使用すると、デフォルトのシェルがbashになります。さらにホームディレクトリの作成やパスワードの設定も同時に進めることができます。通常はadduserコマンドを使った方がよいでしょう。

 画面2では、Ubuntu 18.04LTSでadduserコマンドを使った例を示しました。「sudo adduser ユーザー名」で新しいユーザーを作成しています。

画面2 画面2 Ubuntu 18.04LTSで新規ユーザーを作成したところ adduserコマンドを使った


新規ユーザーの初期値を確認する

 useradd実行時の初期値を確認するには「-D」オプションを使います(画面3、※4)。

※4 初期設定は「/etc/default/useradd」に保存されている。



 「-D」と次の5つのうち、幾つかのオプションを同時に指定することで、それぞれの初期値を変更できます。「-g」(プライマリグループ)、「-b」(ホームディレクトリのベースディレクトリ)、「-e」(アカウントが期限切れとなる日付)、「-f」(パスワードが期限切れとなってからアカウント無効化されるまでの日数)、「-s」(ログインシェル)を同時に指定できます。

 なお、「-D」オプションはデフォルト値を確認、表示するためのオプションなので、新規に作成するユーザー名を指定することはできません。

 ユーザー作成時の設定情報には、この他、「/etc/login.defs」もあります。こちらは暗号化ログイン(shadowログイン)用のファイルです。例えば、「USERGROUPS_ENAB」が「yes」の場合、ユーザー作成時にユーザー名と同名のグループを自動で作成して、プライマリグループとなります(ユーザープライベートグループ、Linux再入門第10回)。なお、CentOS環境の場合「CREATE_HOME」が「yes」という設定があります。

 「/etc/login.defs」の設定を一時的に変更したい場合は、ユーザー作成時に、「-K」オプションで「-K 設定=値」を指定します。「-K」を使っても初期値を変更しません。常にある設定を使用したい場合は「/etc/login.defs」を変更する必要があります。

コマンド実行例

useradd -D

(useradd実行時の初期値を確認する)

useradd -D -s /bin/bash

(useradd実行時のデフォルトシェルを/bin/bashにする)

useradd -K CREATE_HOME=yes ユーザー名

(ホームディレクトリを作成するという設定でユーザーを作成する。「useradd -m ユーザー名」相当、初期値は変更されない)


画面3 画面3 useradd実行時の初期値を確認したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。