usrck コマンド
目的
ユーザー定義が正しいかどうかを確認します。
構文
説明
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 chuserroot ユーザーまたはセキュリティー・グループのメンバーは、 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 コマンドは、警告メッセージを発行し、 ユーザーがログインできない理由を示します。 ユーザーがシステムはエラーを修正しなければならないことを示すと、 ユーザーが上記の理由でログインできない場合には、システムはユーザーのアカウントを使用不可にします。
| 基準 | 説明 | 原因 |
|---|---|---|
| 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 に設定すると、そのユーザーに対するこの基準の検査は正常に行われません。 出力内の余分な桁は、後で使用できるように予約されています。
# 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.フラグ
| 項目 | 説明 |
|---|---|
| -b | システムにアクセスできないユーザーと、その理由を報告します。理由はビット・マスク形式で表示されます。 -b フラグを指定する場合は、-l フラグを指定する必要があります。 |
| -l | すべてのユーザー、または User パラメーターによって指定されたユーザーをスキャンして、ユーザーがシステムにアクセス可能かどうかを判断します。 |
| -n | エラーを修正せずに報告します。 |
| -p | エラーを報告せずに修正します。 |
| -t | エラーを報告して、修正すべきかどうかを尋ねます。 |
| -y | エラーを修正して報告します。 |
終了状況
このコマンドは、以下の終了値を戻します。
| 項目 | 説明 |
|---|---|
| 0 | ユーザー定義ファイルは適切です。 |
| >0 | エラーが発生しました。または 1 つ以上のユーザー定義ファイルにエラーが発生しています。 以下のエラー・コードが戻されます。
|
セキュリティー
アクセス制御 : このコマンドは、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 | ユーザー、属性エラー、状況 |
例
ファイル
| 項目 | 説明 |
|---|---|
| /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 | 構成情報が入っています。 |