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 ユーザーだけがこのフラグを使用したり、管理者ユーザーの属性を変更したりすることができます。
ユーザー名 ユーザーが新規ユーザーであることを指定します。
-R ロード・モジュール ユーザーを作成するために使用されるロード可能 I&A モジュールを指定します。

パラメーター

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

終了状況

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

セキュリティー

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

RBACユーザーおよびTrustedAIXユーザーに注意:このコマンドは特権操作を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限と特権の詳細については、セキュリティの特権コマンドデータベースを参照してください。 このコマンドに関連した特権および権限のリストについては、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. To create thedavis/usr/lib/security/mkuser.default ファイル内のデフォルト値を持つユーザー・アカウントの場合は、次のように入力します。
    mkuser davis
  2. To create thedavisアカウントdavis管理者として、以下を入力します。
    mkuser -a davis
    作成できるのは、root ユーザーまたは UserAdmin 権限を持つユーザーのみです。davis管理ユーザーとして使用します。
  3. To create the davisユーザー・アカウントを使用して、 su 属性を以下の値に設定します。false、タイプ:
    mkuser su=false davis
  4. To create thedavisLDAP ロード・モジュールを介して識別および認証されるユーザー・アカウント、タイプ:
    mkuser -R LDAP davis

エラー・コード

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