このセクションには、コアファイルの管理に関する次の情報が記載されています。
現在のコアダンプ構成を表示するには、オプションを指定しないで coreadm コマンドを使用します。
$ coreadm global core file pattern: global core file content: default init core file pattern: core init core file content: default global core dumps: disabled per-process core dumps: enabled global setid core dumps: disabled per-process setid core dumps: disabled global core dump logging: disabled
コアファイル名パターンは、グローバル、ゾーン別、またはプロセス別に設定できます。また、システムのリブート後も有効なプロセス別デフォルトを設定できます。
たとえば、次の coreadm コマンドで、init プロセスによって開始されるすべてのプロセスのデフォルトのプロセス別コアファイルパターンを設定します。この設定は、デフォルトのコアファイルパターンを明示的に上書きしていないプロセスに対して適用されます。この設定はシステムリブート後も有効です。
# coreadm -i /var/core/core.%f.%p
次の coreadm コマンドでは、任意のプロセスに対しプロセス別コアファイル名パターンを設定します。
# coreadm -p /var/core/core.%f.%p $$
$$ 記号には、現在実行中のシェルのプロセス ID を指定します。プロセス別コアファイル名パターンは、すべての子プロセスに継承されます。
例:
$ coreadm -p $HOME/corefiles/%f.%p $$
または、root 役割になり、グローバルファイル名パターンを設定することもできます。
# coreadm -g /var/corefiles/%f.%p
グローバルまたはプロセス別のコアファイル名パターンを設定したら、これを coreadm -e コマンドで有効にする必要があります。
このコマンドをユーザーの初期設定ファイル (たとえば .profile) に入れておけば、ユーザーのログインセッションで実行するすべてのプロセスに対しコアファイル名パターンを設定できます。
プロセス別またはグローバルコアファイルパスを有効にできます。
プロセス別コアファイルパスを有効にするには、root 役割になり、次のコマンドを発行します。
# coreadm -e process
構成を確認する場合は、現在のプロセスコアファイルパスを表示します。
# coreadm $$ 1180: /home/kryten/corefiles/%f.%p
グローバルコアファイルパスを有効にするには、root 役割になり、次のコマンドを発行します。
# coreadm -e global -g /var/core/core.%f.%p
構成を確認する場合は、現在のプロセスコアファイルパスを表示します。
# coreadm global core file pattern: /var/core/core.%f.%p global core file content: default init core file pattern: core init core file content: default global core dumps: enabled per-process core dumps: enabled global setid core dumps: disabled per-process setid core dumps: disabled global core dump logging: disabled
coreadm コマンドを使って setuid プログラムを有効または無効にすれば、適切なパスを設定することによって、すべてのシステムプロセスに対して、または各プロセスに対してコアファイルを作成できます。
グローバル setuid オプションが有効になっていると、グローバルコアファイルパスに従って、システムのすべての setuid プログラムがコアファイルを作成します。
プロセス別 setuid オプションが有効になっていると、プロセス別コアファイルパスに従って、特定の setuid プロセスがコアファイルを作成します。
デフォルトでは、両方のフラグが無効になっています。セキュリティー上の理由により、グローバルコアファイルパスは、/ で始まるフルパス名にする必要があります。root がプロセス別コアファイルを無効にすると、個別のユーザーがコアファイルを得ることはできなくなります。
setuid コアファイルは root によって所有され、root だけに読み取り/書き込み権が与えられます。通常ユーザーは、ユーザーが setuid コアファイルを生成したプロセスを所有していても、それらのファイルにアクセスできません。
詳細については、coreadm(1M) のマニュアルページを参照してください。
root として、次のいずれかのコマンドを実行し、コアファイルパスを無効にして、コアファイル名パターンを削除します。
グローバルコアファイル設定の場合:
# coreadm -d global -g ""
プロセス別コアファイル設定の場合:
# coreadm -d process -g ""
–d オプションは、コアファイルパスを無効にします。–g オプションに空の文字列変数を付けると、コアファイル名パターンが削除されます。コアファイルパスおよびコアファイル名パターンは、元のデフォルト設定に戻ります。
/etc/system ファイル内で setuid コアファイルを許可する非推奨のパラメータがある場合、次のメッセージが表示されます。
NOTICE: 'set allow_setid_core = 1' in /etc/system is obsolete NOTICE: Use the coreadm command instead of 'allow_setid_core'
この問題を修正するには、/etc/system ファイルから allow_setid_core=1 を削除します。次に coreadm コマンドを使って、 グローバル setuid コアファイルパスを有効にします。