Go to main content

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

印刷ビューの終了

更新: 2018年8月8日
 
 

usermod(8)

名前

usermod - システムにあるユーザーのログイン情報の変更

形式

usermod [-u uid [-o]] [-g group] [-G [+|-]group [, group...]]
     [-d dir [-m]] [-s shell] [-c comment] [-l new_name]
     [-f inactive] [-e expire]
     [-A [+|-]authorization [,authorization]]
     [-P [+|-]profile [,profile]] [-R [+|-]role [,role]]
     [-K key[+|-]=value] [-S repository] [-q qualifier] login
usermod -S ldap -K key[+|-]=value [-q qualifier] default@

説明

usermod ユーティリティーは、システムにあるユーザーのログイン定義を変更します。指定されたログインの定義を変更し、システムファイルやファイルシステムにログイン関連の適切な変更を加えます。

–S ldap を使用して作成されるアカウントの場合、いずれかの –K 属性のデフォルト値は、–S ldap および特殊値 default@ をログイン名として使用して指定できます。

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

ローカルファイルのリポジトリ内に存在しないユーザーの場合は、–S オプションを指定することによって、ファイルがそのユーザーのローカルファイルのエントリを作成/変更します。

既存のユーザーのセキュリティー属性を変更するには、管理者に User Security プロファイルが付与されている必要があります。既存のユーザーのセキュリティー属性以外の属性を変更するには、User Management プロファイルが必要です。passwdshadow、および user_attr の各種フィールドの設定に必要な承認については、passwd(5)shadow(5)、および user_attr(5) を参照してください。グループの割り当てに必要な承認については、group(5) を参照してください。

オプション

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

–A [+|-]authorization

auth_attr(5) で定義されている、コンマで区切られた 1 つ以上の承認。アカウントに承認を割り当てることができるのは、authorization に対する grant 権利を持つユーザーまたは役割だけです。これにより、既存の承認設定はすべて置き換えられます。承認リストが指定されていない場合は、既存の設定が削除されます。

接頭辞 + は承認を既存の承認に追加します。 接頭辞 - は承認を既存の承認から削除します。 接頭辞を指定しない場合、authorization で既存の承認を置換します。

–c comment

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

–d dir

ユーザーの新しいホームディレクトリを指定します。これは、デフォルトでは base_dir/login です。ここで base_dir は新しいログインホームディレクトリのベースディレクトリであり、login は新しいログインです。これにより、そのユーザーの auto_home エントリが作成または変更されます。

このオプションの引数は、server:dir として指定できます。ここで、server はホームディレクトリが存在するマシンのホスト名であり、dir はユーザーのホームディレクトリへのパスです。サーバーがリモートホストの場合、ユーザーのログイン時にシステムがホームディレクトリをマウントするために、リモートホストにホームディレクトリを作成する必要があります。–m オプションが指定されていて、サーバー名が指定されていない場合、ホームディレクトリはコマンドが実行されたホストに作成されます。

–e expire

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

たとえば、10/6/90 または October 6, 1990 と入力できます。`` '' の値によって、期限切れの日付のステータスが無効になります。

–f inactive

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

–g group

既存のグループの整数 ID または文字列名を指定します。これにより、ユーザーのプライマリグループメンバーシップが再定義されます。

–G [+|-]group

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

接頭辞 + はグループを既存のグループに追加します。 接頭辞 - はグループを既存のグループから削除します。 接頭辞を指定しない場合、group で既存のグループを置換します。

–K key[+|-]= value

ユーザーの既存の key=value ペア属性を置き換えるか、またはこれらの属性に追加します。複数の key=value ペアを置き換えるか、または追加するために、複数の –K オプションを使用できます。ただし、キーを繰り返さないでください。特定の暗黙のキーオプション (–A–P–R–p) の代わりに、適切なキーを含む一般的な –K オプションを使用できます。有効な key のリストについては、user_attr(5) を参照してください。これらのキーの値は通常、これらのキーに関連したマニュアルページまたはほかのソースに記載されています。たとえば、project キーの値に関するガイダンスについては project(5) を参照してください。キー defaultpriv および limitpriv の値のリストを表示するには、コマンド ppriv(1)–v および –l オプションとともに使用します。値を指定しないと、既存のキーが削除されます。

キーワード type には、値 role または値 normal を指定できます。値 role を使用すると、アカウントが通常ユーザーから役割に変わります。値 normal を使用すると、アカウントは通常ユーザーのままです。

role アカウントとしては、役割 (–R または roles=value) は存在できません。

接頭辞 + は値を既存の値に追加します。 接頭辞 - は値を既存の値から削除します。 接頭辞を指定しない場合、value で既存の値を置換します。

接頭辞 +/- の操作は、authsprofilesauth_profilesrolesprojectlimitprivdefaultprivauth_profilesaccess_times の各キーにのみ適用できます。

–l new_logname

ユーザーの新しいログイン名を指定します。ユーザー名の要件については、passwd(5) を参照してください。

–m

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

ディレクトリがまだ存在しない場合は、新しい ZFS データセットが作成されます。大域ゾーンにデータセットが rpool/export/home/rolename として作成されます。非大域ゾーンの場合、データセットは ROOT-dataset/export/home/rolename として作成されます。ZFS データセットのマウントポイントは、デフォルトでは /export/home/rolename です。–d path が指定され、それがローカルマシン上のパスである場合、データセットは指定された場所にマウントされます。ZFS スナップショットを作成してそれをプロモートするためのアクセス権が役割に委任されます。新しく作成されるデータセットは、その親から暗号化設定を継承します。暗号化されている場合は、そのラップ鍵を変更するためのアクセス権が役割に委任されます。

–o

このオプションは、指定された UID を複製できるようにします (一意ではない)。

–P [+|-]profile

prof_attr(5) で定義された、コンマで区切られた 1 つ以上の権利プロファイル。これにより、user_attr(5) に既存のプロファイル設定がある場合は置き換えられます。空のプロファイルリストを指定すると、既存の設定が削除されます。

接頭辞 + はプロファイルを既存のプロファイルに追加します。 接頭辞 - はプロファイルを既存のプロファイルから削除します。 接頭辞を指定しない場合、profile で既存のプロファイルを置換します。

–q qualifier

拡張された属性 (–K–P–A、および –R オプションで指定される) が適用される対象を修飾するホストまたはネットグループの名前。修飾子がネットグループ名であることを示すには、接頭辞 @ が必要です。–q オプションは、ユーザーアカウントが LDAP ネームサービスによって保持されている場合のみ有効です。

–R [+|-]role

コンマで区切られた 1 つ以上の役割 (roleadd(8) を参照)。これにより、既存の役割設定はすべて置き換えられます。役割リストが指定されていない場合は、既存の設定が削除されます。

接頭辞 + は役割を既存の役割に追加します。 接頭辞 - は役割を既存の役割から削除します。 接頭辞を指定しない場合、role で既存の役割を置換します。

–s shell

ログイン時のユーザーのシェルとして使用されるプログラムのフルパス名を指定します。shell の値は有効な実行可能ファイルでなければなりません。

–S repository

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

–u uid

ユーザーの新しい UID を指定します。この値は、<param.h> で定義されている MAXUID より小さい、負でない 10 進数の整数である必要があります。

オペランド

次のオペランドがサポートされています。

login

変更される既存のログイン名。

使用例 1 ユーザーへの特権の割り当て

次のコマンドは、高精度の時間に影響を与える特権を、ユーザーの初期の継承可能な一連の特権に追加します。

# usermod -K defaultpriv=basic,proc_clock_highres jdoe

このコマンドにより、user_attr に次のエントリが生成されます。

jdoe::::type=normal;defaultpriv=basic,proc_clock_highres
使用例 2 ユーザーの制限セットからの特権の削除

次のコマンドは、指定されたユーザーがディレクトリへのハードリンクを作成したり、ディレクトリのリンクを解除したりできるようにする特権を削除します。

# usermod -K limitpriv=all,!sys_linkdir jdoe

このコマンドにより、user_attr に次のエントリが生成されます。

jdoe::::type=normal;defaultpriv=basic,limitpriv=all,!sys_linkdir
使用例 3 ユーザーの基本セットからの特権の削除

次のコマンドは、指定されたユーザーがそのユーザーのセッションの外部にあるプロセスを検査できるようにする特権を削除します。

# usermod -K defaultpriv=basic,!proc_session jdoe

このコマンドにより、user_attr に次のエントリが生成されます。

jdoe::::type=normal;defaultpriv=basic,!proc_session;limitpriv=all
使用例 4 ユーザーへの役割の割り当て

次のコマンドは、ユーザーに役割を割り当てます。このコマンドの前に、roleadd(8) を使って役割を作成しておく必要があります。

# usermod -R mailadm jdoe

このコマンドにより、user_attr に次のエントリが生成されます。

jdoe::::type=normal;roles=mailadm;defaultpriv=basic;limitpriv=all
使用例 5 ユーザーへのいくつかの権利の付与

次のコマンドは、solaris.zone.manage 承認 (Project Management 権利プロファイル) を付与し、制限特権を基本に設定して、ユーザーに mailadm 役割を割り当てます。

# usermod -A 'solaris.zone.manage' -P 'Project Management' -K limitpriv=basic
 -R mailadm -S files jdoe_ldap

このコマンドにより、user_attr に次のエントリが生成されます。

jdoe_ldap::::auths=solaris.zone.manage;profiles=ProjectManagement;limitpriv=basic;
roles=mailadm
使用例 6 ユーザーへの認証権利プロファイルの付与

次のコマンドは、信頼できるユーザーに認証権利プロファイルを追加します。

# usermod -K auth_profiles+="Network Security" jdoe
使用例 7 ユーザーからのすべてのプロファイルの削除

次のコマンドは、ユーザーに直接付与されたすべてのプロファイルを削除します。ユーザーは、policy.conf(5)PROFS_GRANTED キーによって付与される権利プロファイルは引き続き保持します。

# usermod -P "" jdoe

終了ステータス

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

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/group

グループ定義を含むシステムファイル

/etc/datemsk

日付形式のシステムファイル

/etc/passwd

システムパスワードファイル

/etc/shadow

ユーザーの暗号化パスワードおよび関連情報を含むシステムファイル

/etc/user_attr

追加のユーザーおよび役割属性を含むシステムファイル

属性

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

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

関連項目

auths(1)passwd(1)profiles(1)getdate(3C)auth_attr(5)passwd(5)policy.conf(5)prof_attr(5)user_attr(5)attributes(7)groupadd(8)groupdel(8)groupmod(8)logins(8)pwconv(8)、roleadd(8)roledel(8)rolemod(8)useradd(8)userdel(8)

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