usrck コマンド

目的

ユーザー定義が正しいかどうかを確認します。

構文

ウスロック { - [ -b ] |  | P-  -y (Y) } { すべてユーザー ... }

説明

usrck コマンドは、ALL ユーザー、 または User パラメーターが指定するユーザーの定義を検査し、 ユーザー・データベース・ファイル内のユーザー定義が正しいことを検証します。 複数のユーザーを指定する場合は、ユーザー名の間をスペース 1 つで区切らなければなりません。 フラグを指定して、システムが間違った属性を修正するべきかどうかを指示する必要があります。

最初に、コマンドが /etc/passwd ファイル内のエントリーを検査します。 システムがエラーを修正するべきであるとユーザーが指示すると、 重複しているユーザー名は報告されて使用不可になります。 システム修正がないため、重複している ID が報告されるだけです。 エントリーのコロンで区切られたフィールドが 6 より少ない場合は、そのエントリーを報告しますが、 修正はしません。 次に、usrck コマンドはほかのファイル内の特定のユーザー属性を検査します。

usrck コマンドは、 /etc/passwd ファイル内でリストされている各ユーザー名に /etc/security/user/etc/security/limits および /etc/security/passwd のファイル内にスタンザを持っているかどうかを検証します。 usrck コマンドは、 /etc/group ファイルにリストされている各グループ名が、 /etc/security/group ファイル内にスタンザを持っているかどうかも検証します。 usrck コマンドは -y フラグを使用して、 見つからないユーザー名およびグループ名のために、セキュリティー・ファイル内にスタンザを作成します。

注:
  • このコマンドは、メッセージを stderr に書き込みます。
  • domainlessgroups 属性が設定されている場合、usrck コマンドは Lightweight Directory Access Protocol (LDAP) ユーザーにエラーをスローすることになります。

すべてのユーザー属性のリストは以下のとおりで、検査する属性を示す表記を持っています。

項目 説明
account_locked 検査なし。 usrck コマンドはこの属性を True に設定し、アカウントを使用不可にします。
admgroups admgroups がユーザー・データベースで定義されているかどうかを調べるために検査し、ユーザーがシステムはエラーを修正しなければならないことを示すと、 このコマンドが、データベース内に存在しないグループを除去します。
auditclasses auditclasses/etc/security/audit/config ファイル内でユーザーのために定義されているかどうかを調べるために検査します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、このコマンドは、 /etc/security/audit/config ファイル内で定義されていないすべての auditclasses を削除します。
auth1 1 次認証メソッド。 メソッドが NONE または SYSTEM でない場合は、 /etc/security/login.cfg ファイルで定義する必要があり、 プログラム属性が存在し、root ユーザーによって実行可能でなければなりません。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 システムがエラーを検出する場合には、ユーザーのアカウントを使用不可にします。
注: auth1 属性は推奨されない属性であり、使用すべきではありません。
auth2 2 次認証メソッド。 メソッドが NONE または SYSTEM でない場合は、 /etc/security/login.cfg ファイルで定義する必要があり、 プログラム属性が存在し、root ユーザーによって実行可能でなければなりません。 システム修正はありません。
注: auth2 属性は推奨されない属性であり、使用すべきではありません。
core 値が適切であることを確認します。 そうでない場合は、このコマンドが値を最小値の 200 ブロックにリセットします。
core_hard 値が適切であることを確認します。 そうでない場合は、このコマンドが値を最小値の 200 ブロックにリセットします。
cpu 値が適切であることを確認します。 そうでない場合は、このコマンドが値を最小値の 120 秒にリセットします。
CPU_HARD 値が適切であることを確認します。 そうでない場合は、このコマンドが値を最小値の 120 秒にリセットします。
data 値が適切であることを確認します。 そうでない場合は、このコマンドが値を最小値の 1272 ブロック (636K) にリセットします。
data_hard 値が適切であることを確認します。 そうでない場合は、このコマンドが値を最小値の 1272 ブロック (636K) にリセットします。
dictionlist 辞書ファイルのリストを検査します。 システムがエラーを修正する必要があることを示すと、 存在しないすべての辞書ファイルをユーザー・データベースから削除します。
expires 検査なし。
fsize 値が適切であることを確認します。 そうでない場合は、このコマンドが値を最小値の 200 ブロックにリセットします。
fsize_hard 値が適切であることを確認します。 そうでない場合は、このコマンドが値を最小値の 200 ブロックにリセットします。
gecos 検査なし。
histexpire 値が適切であることを確認します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 値が大きすぎる場合には最大実行可能値に、小さすぎる場合には最小実行可能値に設定されます。
histsize 値が適切であることを確認します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 値が大きすぎる場合には最大実行可能値に、小さすぎる場合には最小実行可能値に設定されます。
home 読み取りモードおよび検索モードで、ホーム・ディレクトリーの存在とそのディレクトリーへのアクセスの可能性を検査します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 システムがエラーを検出する場合には、ユーザーのアカウントを使用不可にします。
id ユーザー ID の独自性を検査します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 /etc/passwd ファイル内の無効なエントリーを削除します。
login 検査なし。
loginretries ユーザーが認められた数より多くログインに失敗したかどうかを検査します。 失敗した場合には、システムはユーザーのアカウントを使用不可にします。
logintimes 時間指定子のストリングが有効であるかどうかを確認します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 システムがエラーを検出する場合には、ユーザーのアカウントを使用不可にします。
項目 説明
maxage 値が適切であることを確認します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 値が大きすぎる場合には最大実行可能値に、小さすぎる場合には最小実行可能値に設定されます。
maxexpired 値が適切であることを確認します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 値が大きすぎる場合には最大実行可能値に、小さすぎる場合には最小実行可能値に設定されます。
maxrepeats 値が適切であることを確認します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 値が大きすぎる場合には最大実行可能値に、小さすぎる場合には最小実行可能値に設定されます。
minage 値が適切であることを確認します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 値が大きすぎる場合には最大実行可能値に、小さすぎる場合には最小実行可能値に設定されます。 システムは、minage 属性が maxage 属性より大きいかどうかも示します。
minalpha 値が適切であることを確認します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 値が大きすぎる場合には最大実行可能値に、小さすぎる場合には最小実行可能値に設定されます。
mindiff 値が適切であることを確認します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 値が大きすぎる場合には最大実行可能値に、小さすぎる場合には最小実行可能値に設定されます。
minlen 値が適切であることを確認します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 値が大きすぎる場合には最大実行可能値に、小さすぎる場合には最小実行可能値に設定されます。
minother 値が適切であることを確認します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 値が大きすぎる場合には最大実行可能値に、小さすぎる場合には最小実行可能値に設定されます。 システムは、maxage 属性に加えて minage 属性が最大のパスワード・サイズより大きいかどうかも示します。
name ユーザー名の独自性と構成を検査します。 ユーザー名は、8 バイト以下の固有の文字列でなければなりません。 ユーザー名を、+ (正符号)、: (コロン)、- (負符号)、または ~ (ティルド) で始めることはできません。 + (正符号) または - (負符号) で始まる名前は、 NIS (ネットワーク情報サービス) ドメイン内の名前と想定され、それ以上処理は実行されません。 ユーザー名は文字列内にコロン (:) を含むことはできず、 ALL または default のキーワードであってもなりません。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 システムがエラーを検出する場合には、コマンドがユーザーのアカウントを使用不可にし、 /etc/passwd ファイル内の無効なエントリーを削除します。

usrck コマンドは、/etc/passwd ファイルにリストされる各ユーザー名には、 /etc/security/user/etc/security/limits、 および /etc/security/passwd のファイル内にスタンザがあります。 このコマンドは、見つからないと識別される各ユーザー名にスタンザを追加します。 さらに、usrck コマンドは、 /etc/group ファイルにリストされている各グループ名が、 /etc/security/group ファイル内にスタンザを持つかどうかを検証します。

nofiles 値が適切であることを確認します。 センシブルでなければ、値を最小値の 200 にリセットします。
nofiles_hard 値が適切であることを確認します。 センシブルでなければ、値を最小値の 200 にリセットします。
pgrp ユーザー・データベース内に 1 次グループがあるかどうかを検査します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 システムがエラーを検出する場合には、ユーザーのアカウントを使用不可にします。
pwdchecks 外部パスワード制限メソッドのリストを検査します。 ユーザーが、システムはエラーを修正しなければならないことを示すと、 存在しないすべてのメソッドがユーザー・データベースから削除されます。
pwdwarntime 値が適切であることを確認します。 そうでない場合は、システムが値を maxage 値と minage 値の差にリセットします。
rlogin 検査なし。
rss 検査を行い、値が適切であることを確認します。 そうでない場合は、このコマンドが値を最小値の 128 ブロック (64KB) にリセットします。 この値はシステムによって設定されるわけではありません。
rss_hard 検査を行い、値が適切であることを確認します。 そうでない場合は、このコマンドが値を最小値の 128 ブロック (64KB) にリセットします。 この値はシステムによって設定されるわけではありません。
シェル (shell) 実行モードでシェルの存在とアクセス可能性を検査します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 システムがエラーを検出する場合には、ユーザーのアカウントを使用不可にします。
stack 検査を行い、値が適切であることを確認します。 そうでない場合は、このコマンドが値を最小値の 128 ブロック (64KB) にリセットします。
stack_hard 検査を行い、値が適切であることを確認します。 そうでない場合は、このコマンドが値を最小値の 128 ブロック (64KB) にリセットします。
su 検査なし。
sugroups ユーザー・データベース・ファイル内に sugroups があるかどうかを検査します。 ユーザーが、システムはエラーを修正しなければならないことを示すと、 データベース内にないすべてのグループが削除されます。
sysenv 検査なし。
tpath 検査を行い、tpath=always である場合には、 shell 属性は承認された処理としてタグが付けられます。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 システムがエラーを検出する場合には、ユーザーのアカウントを使用不可にします。
ttys ユーザー・データベース・ファイル内に ttys があるかどうかを検査します。 ユーザーが、システムはエラーを修正しなければならないことを示すと、 存在しないすべての ttys がユーザー・データベースから削除されます。
usrenv 検査なし。

修正に、ユーザーのアカウントを使用不可にすることが含まれる場合は、 chuser コマンドを使用して、 account_locked 属性の値を False にリセットします。 System Management Interface Tool (SMIT) を使用し、 以下を入力して chuser コマンドを実行することができます。

smit chuser

root ユーザーまたはセキュリティー・グループのメンバーは、 account_locked 属性を除去するか、 または account_locked 属性を False に設定することによって、 再度ユーザーのアカウントを使用可能にすることができます。 root ユーザーのアカウントは、usrck コマンドによって、使用不可になります。

一般的に、sysck コマンドは、 承認されたシステムのインストールを検証するパーツとして usrck コマンドを呼び出します。 usrck コマンドがユーザー・データベース内にエラーを検出する場合は、 root ユーザーまたはセキュリティー・グループのメンバーが、 grpck コマンドと pwdck コマンドの両方を実行する必要があります。

usrck コマンドは、 データベース管理セキュリティー・ファイル (/etc/passwd.nm.idx/etc/passwd.id.idx/etc/security/passwd.idx、 および /etc/security/lastlog.idx) が最新のものであるか、 または対応するシステム・セキュリティー・ファイルより新しいかどうかを調べるために検査します。 /etc/security/lastlog.idx/etc/security/lastlog より 新しくなくても受け入れられることに注意してください。 データベース管理セキュリティー・ファイルが最新の状態でない場合は、root ユーザーが mkpasswd コマンドを実行するよう指示する警告メッセージが表示されます。

usrck コマンドは、指定されたユーザーがログインできるかどうかを検査します。 ログインの失敗が多すぎるため、あるいは、パスワードが失効しているために、 ユーザーがログインできない場合は、usrck コマンドは、警告メッセージを発行し、 ユーザーがログインできない理由を示します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 ユーザーが上記の理由でログインできない場合には、システムはユーザーのアカウントを使用不可にします。

-l フラグを指定すると、 usrck コマンドはすべてのユーザーまたは User パラメーターで指定されたユーザーをスキャンして、ユーザーがシステムにアクセスできるかどうかを判別します。 ユーザーがアクセス可能かどうかの判断に使用する基準を、次の表に一覧して示します。
表 1. ユーザーのアクセス可能性の基準
基準 説明 原因
1 ユーザー・アカウントがロックされています。 ユーザーの account_locked 属性が true に設定されています。
2 ユーザー・アカウントが期限切れです。 ユーザーの expires 属性が期限切れの値 (満了時刻) に設定されています。
3 ユーザーが連続して失敗したログインの試みが多過ぎます。 ユーザーの unsuccessful_login_count 値が、ユーザーの loginretries 値より大きくなっています。
4 ユーザーにパスワードがありません。 ユーザーの password フィールドが、/etc/password または /etc/security/password の中で「*」になっています。
5 ユーザーはこの日付/時刻にログインすることはできません。 現在の日付/時刻は、ユーザーの logintimes 属性によって定義された有効な時間内に含まれていません。
6 /etc/nologin ファイルが存在します。 /etc/nologin ファイルがあると、root 以外のユーザーがログインできません。
7 ユーザーのパスワードは期限切れになっており、システム管理者しかそのパスワードを変更できません。 ユーザーのパスワードが期限切れになっており、ADMIN パスワード・フラグが設定されています。
8 ユーザーがホストへのログインを否認されました。 ユーザーの hostallowedlogin および hostsdeniedlogin 属性により、現在のホストへのアクセスは認められません。
9 ユーザーがアプリケーションによってアクセスを否認されました。 ユーザーの login rlogin、および su 属性が偽に設定され、rcmds 属性はリジェクトするように設定されています。 これらの属性値の少なくとも 1 つ (ただし、すべてではない) が許可をリジェクトしている場合、システムはユーザーによって部分的にアクセス可能であると見なされます。
10 ユーザーは端末へのログインを否認されました。 ユーザーの ttys 属性では、現在の端末へのアクセスは認められません。 システムはユーザーから部分的にアクセス可能と見なされます。

-b フラグも指定されている場合、出力は、タブで区切られたユーザー名と 16 桁のビット・マスクの 2 つのフィールドで構成されます。 ビット・マスクの各桁は、上記のユーザーのアクセス可能性の基準の表に記載された各基準に対応し、基準 1 は右端の桁で表されます。 基準のビット位置を 1 に設定すると、そのユーザーに対するこの基準の検査は正常に行われません。 出力内の余分な桁は、後で使用できるように予約されています。

以下は、-l フラグを指定した usrck コマンドの例です。
# usrck -l testusr1 testusr2
3001-689 The system is inaccessible to testusr1, due to the following:
         User account is locked
         User denied login to terminal.
        
3001-689 The system is inaccessible to testusr2, due to the following:
         User account is expired.
         User has too many consecutive failed login attempts.
         User denied login to host.
以下は、 -l フラグと -b フラグを指定した usrck コマンドの例です。
# usrck -lb testusr1 testusr2
 testusr1       0000000000000001
 testusr2       0000000001000110

フラグ

項目 説明
-b システムにアクセスできないユーザーと、その理由を報告します。理由はビット・マスク形式で表示されます。 -b フラグを指定する場合は、-l フラグを指定する必要があります。
注: ビット・マスクは 基準 10 (ユーザーが端末へのログインを拒否した) を報告しません。これは、ユーザーがシステムにアクセスできないかどうかを判別する際の完全なシナリオと見なすことができないためです。 同様に、すべての属性値ではなく少なくとも 1 つの属性値が認証を拒否した場合、ビット・マスクは 基準 9 (ユーザーがアプリケーションによるアクセスを拒否した) を報告しません。この基準は、4 つの属性値すべてが認証を拒否した場合にのみ報告されます。
-l すべてのユーザー、または User パラメーターによって指定されたユーザーをスキャンして、ユーザーがシステムにアクセス可能かどうかを判断します。
-n エラーを修正せずに報告します。
-p エラーを報告せずに修正します。
-t エラーを報告して、修正すべきかどうかを尋ねます。
-y エラーを修正して報告します。

終了状況

このコマンドは、以下の終了値を戻します。

項目 説明
0 ユーザー定義ファイルは適切です。
>0 エラーが発生しました。または 1 つ以上のユーザー定義ファイルにエラーが発生しています。 以下のエラー・コードが戻されます。
EINVAL (22)
無効なコマンド・ライン引数
ENOENT (2)
1 つ以上のユーザー定義ファイルが存在しない
ENOTRUST (114)
データベース・ファイル内のユーザー定義にエラーがある、またはユーザーがシステムにアクセスできない ( -l オプションによって検出される)

セキュリティー

アクセス制御 : このコマンドは、root ユーザーとセキュリティー・グループのメンバーに実行 (x) アクセス権限を与えます。 コマンドは、setuid で root ユーザーに設定され、trusted computing base 属性を持っていなければなりません。

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

モード ファイル
r /etc/passwd
r /etc/security/user
rw /etc/security/group
rw /etc/group
rw /etc/security/lastlog
rw /etc/security/limits
rw /etc/security/audit/config
rw /etc/security/login.cfg

監査イベントは次のとおりです。

イベント 情報
USER_Check ユーザー、属性エラー、状況
RBACユーザーおよびTrustedAIXユーザーに注意:このコマンドは特権操作を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限と特権の詳細については、セキュリティの特権コマンドデータベースを参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。

  1. すべてのユーザーがユーザー・データベースに存在し、エラーが報告されている (ただし、修正されていない) ことを確認するには、次のように入力します。
    usrck  -n ALL 
  2. ユーザー・データベース・ファイルに存在せず、エラーが報告されているユーザーをユーザー定義から削除するには、次のように入力します。
    usrck  -y ALL  
  3. システムにアクセスできないユーザーのリストを表示するには、次のように入力します。
    usrck -l ALL
  4. システムにアクセスできないユーザーのリストをビット・マスク形式で表示するには、次のように入力します。
    usrck -l -b ALL

ファイル

項目 説明
/usr/bin/usrck usrck コマンドのパスを指定します。
etc/passwd 基本ユーザー属性が入っています。
/etc/security/user ユーザーの拡張属性が入っています。
/etc/group 基本グループ属性が入っています。
/etc/security/group 拡張グループ属性が入っています。
/etc/security/lastlog ユーザーの最新ログイン属性が入っています。
/etc/security/limits ユーザーのプロセス・リソース制限が入っています。
/etc/security/audit/config 監査システム構成情報が入っています。
/etc/security/login.cfg 構成情報が入っています。