Go to main content

マニュアルページ セクション 8: システム管理コマンド

印刷ビューの終了

更新: 2018年8月8日
 
 

useradd(8)

名前

useradd - システムでの新しいユーザーログインの管理

形式

useradd [-A authorization
 [,authorization...]] 
     [-b base_dir | -d dir] [-c 
comment] [
-e expire] 
     [-f inactive] [-g 
group] [-G group [,
group]...] 
     [-K key=value] [-m [
-k skel_dir]] [-p 
projname] 
     [-P profile [,profile...
]] [-R role [,
role...]] 
     [-s shell] [-S 
repository] [-u uid [
-o]] login
useradd -D [-A 
authorization [,authorization...]] 
     [-b base_dir] [-s 
shell [-k skel_dir]] [
-e expire] 
     [-f inactive] [-g 
group] [-K key=value] [
-p projname] 
     [-P profile [,profile...
]] [-R role [,
role...]]

説明

useradd は、files および ldap リポジトリの passwdshadow、および user_attr データベースに新しいユーザーを追加します。–A および –P オプションは、それぞれ承認とプロファイルをユーザーに割り当てます。–R オプションはユーザーに役割を割り当てます。–p オプションはユーザーにプロジェクトを関連付けます。–K オプションは、ユーザーの user_attr エントリに key=value ペアを追加します。–K オプションを複数使用して、複数の key=value ペアを追加できます。

また、useradd では必要に応じて、ユーザーの補助グループメンバーシップを作成したり (–G オプション)、ユーザーのホームディレクトリを作成したり (–m オプション) できます。新しいログインは、passwd(1) コマンドが実行されるまで、ロックされたままになります。

useradd –D–s–k–g–b–f–e–A–P–p–R、または –K オプション (またはこれらのオプションの任意の組み合わせ) を指定すると、対応する各フィールドのデフォルト値が設定されます。下記の –D オプションを参照してください。これ以降の useradd コマンドを –D オプションなしで実行すると、これらの引数が使用されます。

または、実行時に動的に適用されるデフォルト設定を指定できます。–S ldap を使用して作成されるアカウントの場合、いずれかの –K 属性のデフォルト値は、–S ldap および特殊値 default@ をアカウント名として使用して指定できます。default@ アカウントは、ログインに使用することを意図していないため、自動的にロックされます。policy.conf(5) で追加のデフォルト値を指定できます。

このコマンドで作成されるシステムファイルエントリには、1 行あたり 2048 文字の制限があります。複数のオプションに長い引数を指定する場合は、この制限を超える可能性があります。

useradd では、ユーザー名を passwd(5) で説明されている形式で指定する必要があります。これらの要件が満たされていない場合は、警告メッセージが表示されます。ユーザー名の要件については、passwd(5) を参照してください。

新しいユーザーを作成するには、管理者に User Management プロファイルが付与されている必要があります。passwdshadow、および user_attr の各種フィールドの設定に必要な承認については、passwd(5)shadow(5)、および user_attr(5) を参照してください。グループおよびプロジェクトの割り当てに必要な承認については、group(5) および project(5) を参照してください。

オプション

サポートしているオプションは、次のとおりです。

–A authorization

auth_attr(5) で定義されている、1 つまたは複数のコンマ区切りの承認。承認の grant 権を持っているユーザーまたは役割だけが、その承認をアカウントに割り当てることができます。

–b base_dir

新しいログインホームディレクトリのベースディレクトリ (下記の –d オプションを参照)。新しいユーザーアカウントが作成されるときは、–m オプションまたは –d オプションも指定されている場合を除き、base_dir がすでに存在している必要があります。

–c comment

任意のテキスト文字列。一般にはログインの簡単な説明文ですが、現在はユーザーのフルネームを表すフィールドとして使用されています。この情報は、ユーザーの passwd エントリに保存されます。

–d dir | server:dir

新しいユーザーのホームディレクトリパスを指定します。サーバー名が指定されていない場合、指定されたディレクトリは passwd(5) データベースで管理されます。

省略可能なサーバー名は、ホストディレクトリがあるホストを指定します。この形式のエントリはオートマウンタに依存し、auto_home マップで管理されます。パス /home/username は、passwd(5) データベースで管理されます。ユーザーが続けて /home/username を参照すると、オートマウンタはここに指定されているディレクトリを /home/username にマウントします。

–D

groupbase_dirskel_dirshellinactiveexpireprojprojname、および key=value ペアのデフォルト値を表示します。–g–b–f–e–A–P–p–R、または –K オプションとともに使用された場合、–D オプションは、指定されたフィールドのデフォルト値を設定します。デフォルト値は次のとおりです。

group

other (GID は 1)

base_dir

/export/home

skel_dir

/etc/skel

shell

/usr/bin/bash

inactive

0

expire

NULL 文字列

auths

NULL 文字列

profiles

NULL 文字列

auth_profiles

NULL 文字列

proj

3

projname

default

key=value (user_attr(5) で定義されているペア)

存在しません

roles

NULL 文字列

–e expire

ログインの有効期限を指定します。この日付を過ぎると、どのユーザーもこのログインにアクセスできなくなります。expire オプション引数は、テンプレートファイル /etc/datemsk に含まれている日付の形式のいずれかを使用して入力された日付です。getdate(3C) を参照してください。

選択した日付形式にスペースが含まれている場合は、引用符で囲む必要があります。たとえば、10/6/90 または October 6, 1990 と入力できます。NULL 値 (" ") を指定すると、期限切れのステータスは無効になります。このオプションは一時的なログインを作成する場合に役立ちます。

–f inactive

ログイン ID が最後に使用された日から無効と宣言されるまでの、最大日数を指定します。通常は正の整数です。値 0 を指定すると、このステータスは無効になります。

–g group

既存グループのグループ ID (整数) または名前 (文字列) を指定します。–D オプションが指定されていない場合、新しいユーザーのプライマリグループメンバーシップを定義します。デフォルトでは、デフォルトグループになります。このデフォルト値は、useradd –D –g group を呼び出すことによってリセットできます。0 から 99 の GID は、Solaris オペレーティングシステムによる割り当て用として予約されています。

–G group

既存グループのグループ ID (整数) または名前 (文字列) を指定します。新しいユーザーの補助グループメンバーシップを定義します。group–g オプションと –G オプションで重複して指定されている場合、その項目は無視されます。指定できるグループの数は NGROUPS_MAX 以下です。0 から 99 の GID は、Solaris オペレーティングシステムによる割り当て用として予約されています。

–K key=value

ユーザーの属性に追加する key=value ペアを指定します。–K オプションを複数使用して、複数の key=value ペアを追加できます。暗黙に指定される特定のキーオプション (–A–P–R–p) の代わりに、汎用の –K オプションと適切なキーを使用できます。使用可能な key=value ペアのリストについては、user_attr(5) を参照してください。type キーは、このオプションに有効なキーではありません。キーを重複して指定することはできません。

–k skel_dir

新しいユーザーのホームディレクトリにコピーできるスケルトン情報 (.profile など) を含むディレクトリ。このディレクトリはすでに存在している必要があります。システムには、この目的のために使用できるスケルトンディレクトリとして /etc/skel が用意されています。

–m

新しいユーザーのホームディレクトリが存在していない場合は、新たに作成します。ホームディレクトリがすでに存在している場合、そのディレクトリには group (ユーザーのプライマリグループ) による読み取り権、書き込み権、および実行権が設定されている必要があります。–d オプションに指定されたサーバー名がリモートホストの場合、システムはホームディレクトリの作成を試みません。

ディレクトリがまだ存在しない場合、親ディレクトリが ZFS データセットのマウントポイントであれば、そのデータセットの子が作成され、指定された場所にマウントされます。ZFS スナップショットを作成してそれをプロモートするためのアクセス権がユーザーに委任されます。新しく作成されるデータセットは、その親から暗号化設定を継承します。暗号化されている場合は、そのラップ鍵を変更するためのアクセス権がユーザーに委任されます。

新たに作成されるディレクトリは、マルチレベルのデータセットとして作成されます。

–o

重複した (一意でない) UID を許可します。

–P profile

prof_attr(5) で定義されている実行プロファイルを 1 つ以上、コンマで区切って指定します。

–p projname

追加するユーザーに関連付けるプロジェクトの名前を指定します。project(5) で定義されている projname フィールドを参照してください。

–R role

user_attr(5) で定義されている実行プロファイルを 1 つ以上、コンマで区切って指定します。役割をほかの役割に割り当てることはできません。

–s shell

ユーザーのログインシェルとして使用するプログラムのフルパス名を指定します。指定しない場合は、以前に –D –s オプションで構成された値にデフォルトが設定されます。–D –s でデフォルトが設定されていない場合は、/usr/bin/bash が使用されます。shell の値は有効な実行可能ファイルでなければなりません。

–S repository

有効なリポジトリは、filesldap です。リポジトリは、更新するネームサービスを指定します。デフォルトのリポジトリは files です。リポジトリが files である場合、承認、プロファイル、および役割はほかのネームサービスリポジトリ内に存在することができ、また files リポジトリ内のユーザーに割り当てることができます。リポジトリが ldap の場合、割り当て可能な属性はすべて ldap リポジトリに存在している必要があります。

–u uid

新しいユーザーの UID を指定します。この UID は、<sys/param.h> ヘッダーファイルで定義された MAXUID より小さく、かつ負でない 10 進整数でなければなりません。UID のデフォルトは、現在割り当てられている最大の値の次に大きい使用可能な (一意の) 値です。たとえば、UID 100、105、および 200 が割り当て済みの場合、次のデフォルトの UID 番号は 201 になります。0 から 99 までの UID は、Solaris オペレーティングシステムによる割り当てのために予約されています。

終了ステータス

エラーが発生した場合、useradd はエラーメッセージを出力し、次のいずれかの値で終了します。

1

行おうとした操作に必要な権限がありません。

2

コマンド構文が無効でした。usermod コマンドの使用法に関するメッセージが表示されます。

3

オプションに無効な引数が指定されました。

4

–u オプションで指定された gid または uid はすでに使用されています。

5

password ファイルと shadow ファイルが互いに整合していません。pwconv(8) がエラーの修正に役立つ可能性があります。passwd(5) および shadow(5) を参照してください。

6

変更されるログインが存在しないか、gid または uid が存在しません。

7

grouppasswd、または shadow ファイルがありません。

9

グループまたはユーザーの名前はすでに使用されています。

10

passwdshadow、または user_attr ファイルを更新できません。

11

ホームディレクトリを移動するための容量が不足しています (–m オプション)。

12

新しいホームディレクトリを作成、削除、または移動できません。

13

要求されたログインはすでに使用されています。

14

予期しない失敗。

16

グループデータベースを更新できません。

17

プロジェクトデータベースを更新できません。

18

承認が不十分です。

19

役割がありません。

20

プロファイルがありません。

21

特権がありません。

22

ラベルがありません。

23

グループがありません。

24

システムで Trusted Extensions が実行されていません。

25

プロジェクトがありません。

26

auto_home を更新できません。

ファイル

/etc/datemsk

/etc/passwd

/etc/shadow

/etc/group

/etc/skel

/usr/include/limits.h

/etc/user_attr

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
確実

関連項目

auths(1)passwd(1)profiles(1)roles(1)getdate(3C)auth_attr(5)group(5)passwd(5)prof_attr(5)project(5)user_attr(5)attributes(7)labels(7)groupadd(8)groupdel(8)groupmod(8)grpck(8)、logins(8)pwck(8)、userdel(8)usermod(8)

Managing User Accounts and User Environments in Oracle Solaris 11.4

診断

エラーが発生した場合、useradd はエラーメッセージを表示し、ゼロ以外のステータスで終了します。

次のメッセージは、指定された login がすでに使用されていることを示します。

UX: useradd: ERROR: login is already in use. Choose another.

次のメッセージは、–u オプションで指定された uid が一意でないことを示します。

UX: useradd: ERROR: uid uid is already in use. Choose another. 

次のメッセージは、–g オプションで指定された group がまだ作成されていないことを示します。

UX: useradd: ERROR: group group does not exist. Choose another. 

次のメッセージは、–u オプションで指定された uid が予約済み UID の範囲 (0 から 99) に含まれていることを示します。

UX: useradd: WARNING: uid uid is reserved.

次のメッセージは、–u オプションで指定された uid<sys/param.h> で定義された MAXUID を超えていることを示します。

UX: useradd: ERROR: uid uid is too big. Choose another.

次のメッセージは、/etc/passwd または /etc/shadow ファイルが存在しないことを示します。

UX: useradd: ERROR: Cannot update system files - login cannot be created.

次のメッセージは、コマンドを実行したユーザーに、この操作を実行するための十分な承認がないことを示します。

UX: roleadd: ERROR: Permission denied.

次のメッセージは、useradd コマンドで無効なディレクトリが指定されたことを示します。

UX: invalid_directory is not a valid directory. Choose another.

useradd ユーティリティーは、デフォルトの有効範囲または指定された有効範囲内にある passwdshadowgroupproject、および user_attr データベースに定義を追加します。このユーティリティーは、ユーザー名 (または役割) およびユーザー ID が一意であることと、指定されたグループ名が存在することを、外部のネームサービスと照合して確認します。