mkuser コマンド

目的

新しいユーザー・アカウントを作成します。

構文

mkuser [ -R load_module ] [-a ] [ Attribute=Value ... ] Name

説明

mkuser コマンドは、新しいユーザー・アカウントを作成します。 Name パラメーターは、固有の文字列 (長さは、chdev コマンドを使用して管理者が構成できる) でなければなりません。 ユーザー名には ALL または default キーワードは使用できません。 デフォルトでは、mkuser コマンドは標準ユーザー・アカウントを作成します。 管理ユーザー・アカウントを作成するには、-a フラグを指定します。

代替識別と認証 (I&A) メカニズムをもつユーザーを作成するには、 -R フラグを使用して、I&A ロード・モジュールを指定することができます。-R フラグを用いずにユーザーを作成する場合は、各ユーザーをローカルに作成します。ロード・モジュールは、/usr/lib/security/methods.cfg ファイルで定義されています。

mkuser コマンドは、ユーザーのパスワード情報を作成しません。 このコマンドは、* (アスタリスク) を使用して password フィールドを初期化します。 このフィールドは後で、passwd または pwdadm コマンドによって設定されます。 passwd または pwdadm コマンドを使用して /etc/security/passwd ファイルに確認情報が追加されるまで、新規アカウントは使用できません。

このコマンドは、System Management Interface Tool (SMIT) smit mkuser 高速パスを使用して実行することができます。

mkuser コマンドは、常にターゲット・ユーザーのレジストリーを検査して、新規アカウントの ID がターゲット・レジストリーに対して固有であるか確認します。 mkuser コマンドは、dist_uniqid システム属性を使用して、システムのすべてのユーザー・レジストリーを検査するように構成することもできます。dist_uniqid システム属性は /etc/security/login.cfg ファイルの usw スタンザの属性であり、chsec コマンドを使用して管理できます。

dist_uniqid システム属性には、以下の値があります。
  • never - ターゲット以外のレジストリーに対して ID 衝突の検査をしません。 これはデフォルト設定です。
  • always - 他のすべてのレジストリーに対して ID 衝突の検査をします。 ターゲット・レジストリーとそれ以外のレジストリーの間に衝突が検出されると、アカウントの作成や変更は失敗します。
  • uniqbyname - 他のすべてのレジストリーに対して ID 衝突の検査をします。 レジストリー間の衝突が許可されるのは、作成されるアカウントの名前が既存のアカウントと同じである場合に限られます。
注: ターゲット・レジストリー内の ID 衝突の検出は、dist_uniqid システム属性に関係なく、常に実行されます。

uniqbyname システム属性の設定は、2 つのレジストリーに対して有効に機能します。 3 つ以上のレジストリーがあり、2 つのレジストリー間に既に ID 衝突が存在する場合、衝突した ID 値を使用して第 3 のレジストリーに新規アカウントを作成した場合の mkuser コマンドの動作は未指定です。 新規アカウントの作成は、レジストリーの検査順序によって正常に行われる場合と失敗する場合があります。

ID 衝突の検査は、ローカル・レジストリーとリモート・レジストリー間、またはリモート・レジストリー同士間の ID の固有性に関してのみ行われます。 リモート・レジストリー上で新規作成されたアカウントと、同じリモート・レジストリーを使用する他のシステム上の既存のローカル・ユーザーとの間での ID の固有性は保証されません。 mkuser コマンドは、それが実行された時点でリモート・レジストリーに到達できないときは、そのリモート・レジストリーをバイパスします。

ユーザー名作成に関する制約事項

ログインの不整合を防ぐために、すべて英大文字のユーザー名を作成しないようにする必要があります。 mkuser コマンドはマルチバイト・ユーザー名をサポートしますが、ユーザー名は POSIX 移植可能ファイル名文字セットに制限することをお勧めします。

ユーザー・データベースが破損されないように、ユーザー名は慎重に決めなければなりません。 ユーザー名を - (ダッシュ)、+ (正符号)、@ (アットマーク)、~ (ティルド) で始めることはできません。ユーザー名にはキーワード ALLdefault も使用できません。さらに、ユーザー名文字列の中では、次のどの文字も使用してはなりません。

項目 説明
: コロン
" 二重引用符
# ポンド記号
, コンマ
= 等号
¥ 円記号
/ スラッシュ
? 疑問符
' 単一引用符
` 逆引用符

また、Name パラメーターにスペース、タブ、または改行文字を使用できません。

フラグ

項目 説明
-a ユーザーが管理者であることは指定します。 root ユーザーだけがこのフラグを使用したり、管理者ユーザーの属性を変更したりすることができます。
username ユーザーが新規ユーザーであることを指定します。
-R load_module ユーザーを作成するために使用されるロード可能 I&A モジュールを指定します。

パラメーター

項目 説明
Attribute=Value ユーザー属性を初期化します。 有効な属性と値については chuser コマンドのセクションを参照してください。
Name 固有の文字列を指定します。この文字列の長さは、chdev コマンドを使用して、管理者によって設定されます。

終了状況

このコマンドは次の終了値を戻します。
項目 説明
0 コマンドが正常に実行され、要求されたすべての変更が行われました。
>0 エラーが発生しました。 印刷されるエラー・メッセージには、コマンド失敗のタイプに関する詳細が示されます。

セキュリティー

アクセス制御: このコマンドは、実行 (x) アクセス権を root ユーザーとセキュリティー・グループのメンバーだけに付与します。このコマンドは、トラステッド・コンピューティング・ベース (TCB) 内のプログラムとしてインストールしなければなりません。このコマンドは、 setuid (SUID) ビットが設定されている root ユーザーが所有しなければなりません。

RBAC ユーザーおよび Trusted AIX ユーザーへの注意: このコマンドは特権命令を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限および特権についての詳細情報は、「セキュリティー」の『特権コマンド・データベース』を参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。
このコマンドの全機能を使用する場合、ロールには accessauths に加えて以下の権限が必要です。
  • aix.security.user.audit
  • aix.security.role.assign
  • aix.security.group.change
  • aix.security.user.change

アクセスされるファイル:

モード ファイル
rw /etc/passwd
rw /etc/security/user
rw /etc/security/user.roles
rw /etc/security/limits
rw /etc/security/environ
rw /etc/group
rw /etc/security/group
r /usr/lib/security/mkuser.default
x /usr/lib/security/mkuser.sys

監査イベント:

イベント 情報
USER_Create ユーザー

制限

ユーザーを作成しても、すべてのロード可能 I&A モジュールによってサポートされないことがあります。 ロード可能 I&A モジュールがユーザーの作成をサポートしない場合には、 エラーが報告されます。

  1. /usr/lib/security/mkuser.default ファイル内のデフォルト値を使用して davis ユーザー・アカウントを作成するには、 次のように入力します。
    mkuser davis
  2. 管理者として davis を持つ davis アカウントを作成するには、次のように入力します。
    mkuser -a davis
    root ユーザーまたは UserAdmin 権限を持つユーザーのみが、 davis を管理ユーザーとして作成することができます。
  3. davis ユーザー・アカウントを作成し、 su 属性を値 false に設定するには、次のように入力します。
    mkuser su=false davis
  4. LDAP ロード・モジュールを介して識別および認証される davis ユーザー・アカウントを作成するには、次のように入力します。
    mkuser -R LDAP davis

エラー・コード

項目 説明
0 コマンドは正常に実行されました。
EINVAL ユーザー名引数が無効です (無効な文字を含んでいます)。
EACCES 呼び出し側がデータベース・ファイルに対する書き込みアクセス権がありません。
EPERM -a フラグが指定され、呼び出し側が root でない場合は、ユーザー識別および認証は失敗します。
EEXIST ユーザーは既に存在しています。
ENAMETOOLONG ユーザー名が長すぎます。
other errno その他のシステム・エラーがあります。

ファイル

項目 説明
/usr/bin/mkuser mkuser コマンドが入っています。
/usr/lib/security/mkuser.default 新規ユーザーのデフォルト値が入っています。
/etc/passwd ユーザーの基本属性が入っています。
/etc/security/user ユーザーの拡張属性が入っています。
/etc/security/user.roles ユーザーの管理者のロールの属性が入っています。
/etc/security/passwd パスワード情報が入っています。
/etc/security/limits 各ユーザーのリソース・クォータと制限を定義します。
/etc/security/environ ユーザーの環境属性が入っています。
/etc/group グループの基本属性が入っています。
/etc/security/group グループの拡張属性が入っています。
/etc/security/.ids 標準ユーザー ID、管理者ユーザー ID、グループ ID が入っています。