【 useradd 】コマンド――新規ユーザーを作成する:Linux基本コマンドTips(255)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、新規ユーザーを作成する「useradd」コマンドです。
本連載は、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とし、ホームディレクトリも同時に作成する)
Ubuntuの場合、useraddコマンドではなく、adduserコマンドを使用すると、デフォルトのシェルがbashになります。さらにホームディレクトリの作成やパスワードの設定も同時に進めることができます。通常はadduserコマンドを使った方がよいでしょう。
画面2では、Ubuntu 18.04LTSでadduserコマンドを使った例を示しました。「sudo 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 ユーザー名」相当、初期値は変更されない)
筆者紹介
西村 めぐみ(にしむら めぐみ)
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.