| 日本−日本語 |
|
|
|
![]() |
HP-UX リファレンス: セクション 1 : ユーザーコマンド (A~M) > cchatr_pa(1)PA-RISC システム用HP-UX 11i Version 2: September 2004 |
|
名称chatr_pa: chatr ― プログラムの内部属性の変更 構文PA-RISC 32 ビット SOM chatrchatr [-nqsMN [z|Z]] [-l library] [-B mode] [+b flag] [+dbg flag] [+es flag] [+mergeseg flag] [+gst flag] [+gstbuckets size] [+gstsize size] [+k flag] [+l library] [+pd size] [+pi size] [+plabel_cache flag] [+q3p flag] [+q4p flag] [+r flag] [+s flag] [+z flag] file ... PA-RISC 64 ビット ELF chatrPA-RISC 64 ビットの chatr を実行するには 2 つの構文形式があります。 フォーマット 1: 第 1 の構文形式は、SOM chatr と互換性があり、 旧製品との互換性およびシングル テキストセグメントとシングル データセグメントのみの通常のファイルを簡単に操作するのに使用します。 chatr [-nqszZ] [-l library] [-B mode] [+b flag] [+cd flag] [+ci flag] [+es flag] [+gst flag] [+gstsize size] [+k flag] [+l library] [+md flag] [+mi flag] [+pd size] [+pi size] [+s flag] [+z flag] file ... フォーマット 2: 第 2 の構文形式には、変更するセグメントを明示的に指定する機能があります。 chatr [-s] [-B mode] [+c flag] [+dz flag] [+k flag] [+m flag] [+p size] [+r flag] [+s flag] [+si index | +sa address | +sall ] [+z flag] file ... 説明chatr を使用すると、32 ビットモード SOM および 64 ビットモード ELF ファイルの、プログラムの内部属性を変更できます。 -s が指定されている場合を除き、 chatr は、終了時に標準出力へファイルの新旧の値をプリントします。 +pd および +pi オプションでは、仮想メモリのページサイズについてのヒントのみを指定します。 実際のページサイズは異なる可能性があります。 ある状況下においては、特定のアプリケーションのメモリ要件によっては、ページサイズのヒント L で、より高いパフォーマンスが得られます。 アプリケーションによっては、静的分岐予測によって高パフォーマンスが得られるものもあり、そうでない場合もあります。 +r オプションでは、この機能を使用したほうがよいかそうでないかのヒントを指定します。 +gst および関連のオプションを使用すると、エクスポートされたシンボルの検索を高速化するグローバルシンボルテーブルの使用により性能が向上します。 詳細については、 dld.sl(5) および 『『HP-UX リンカー & ライブラリー オンライン ユーザーズガイド』』 を参照してください。 PA-RISC 32 ビット SOM および PA-RISC 64 ビット ELF (フォーマット 1) の chatr に共通のオプションchatr のデフォルトでは、それぞれの file のマジックナンバーおよびファイル属性を標準出力にプリントします。
PA-RISC 32 ビット SOM の chatr 専用のオプション
PA-RISC 64 ビット ELF の chatr のオプションPA-RISC 64 ビット ELF の chatr は SOM の chatr に似ていますが、新しいオプションをサポートしています (他のオプションは廃止されました)。 新しいオプション: PA-RISC 64ビット ELF の chatr (フォーマット 1) のオプション
PA-RISC 64ビット ELF の chatr (フォーマット 2) のオプション 共通のオプション、 -s、 -B mode、 +k flag、 +r flag、 +s flag、 +z flag と共に、次のオプションを使用できます。
chatr とマジックナンバーシェアード という用語はマジックナンバー SHARE_MAGIC に適用され、 デマンドロード という用語はマジックナンバー DEMAND_MAGIC に適用されます。 詳細については、 magic(4) および 『『HP-UX リンカー & ライブラリー オンライン ユーザーズガイド』』 を参照してください。 chatr は、出力で、実行可能プログラムを次のようなタイプに分類します。
リンカは、デフォルトで SHARE_MAGIC 実行可能プログラムを生成します。 SHMEM_MAGIC の使用SHMEM_MAGIC は、真の 64 ビットカーネルで 64 ビットアドレスが使用可能になるまでの回避策です。 SHMEM_MAGIC は、将来 HP が 64 ビットアーキテクチャ (PA-RISC 2.0 以降) を実現したときには、サポートされなくなります。 これらのアーキテクチャで 1.75 GB より大きな共有メモリを必要とするプログラムを実行する場合は、アーキテクチャに合わせて (64 ビットの実行可能プログラムとして) プログラムをコンパイルし直す必要があります。 64 ビットアーキテクチャ (PA-RISC 2.0 を含む) のすべての HP の実装で 64 ビットの実行可能プログラムとしてコンパイルし直したプログラムは、 SHMEM_MAGIC としてマークすることはできません。 また、その時点では 1.75 GB より大きな共有メモリにアクセスできるようになっているので、マークする必要はありません。 その他のタイプの実行可能プログラムで使用可能な 1 GB の共有メモリを追加する場合、System V で使用可能な形態でのみ追加できます。 それ以外の形態 (メモリマップファイルなど) で共有メモリを追加することはできません。 スタック上の実行許可制限システムに侵入するためによく (または一般に) 用いられる方法は、プログラムのスタック上のバッファを故意にオーバフローさせる方法です。 例えば、非常に長く、注意して選んだコマンド行引き数を、それを予期していない特権プログラムに渡します。 悪意を持った非特権ユーザーは、この方法で特権プログラムをだまし、スーパーユーザーのシェルを開始させるか、同じような許可されていない動作を実行させることができます。 この種の攻撃を受けるリスクを低くするには、プログラムのスタックページから実行パーミッションを削除することが、単純ですが効果的な方法です。 これにより、性能を犠牲にせずにシステムのセキュリティが高まり、大部分の正当なアプリケーションに悪い影響も与えません。 この項で述べた変更の影響を受けるのは、プログラムのスタック上にある命令を実行しようとする (あるいはだまされて実行する) ごく一部のプログラムにすぎません。 この項で述べたスタックの保護機能がプログラムに対して有効になっており、そのプログラムがスタックからコードを実行しようとした場合、HP-UX のカーネルは、 SIGKILL シグナルでプログラムを終了させ、このマンページの項を参照するメッセージを表示し、エラーメッセージをシステムメッセージ ログに記録します (エラーメッセージの表示には、 dmesg を使用します)。 カーネルが記録するメッセージは、次のようなものです。
このようなメッセージが表示された場合は、プログラムの所有者を調べて、このプログラムが正当にスタックからコードを実行しているかどうかを確認します。 正当であれば、以下に述べる方法のどちらか、または両方を用いてプログラムを再度機能させることができます。 プログラムが正当にスタックからコードを実行していない場合は、悪意を持った行為ではないかと疑って、適切に対処してください。 HP-UX には、プログラムのスタックからの実行を許可する方法が 2 つあります。 これらの方法を組み合わせると、セキュリティと互換性に関して、サイトに独自のトレードオフを設定できます。 1 番目の方法は、 chatr の +es オプションを使用する方法で、個別のプログラムに作用します。 一般にこの方法は、システムのデフォルト設定にかかわらず、特定のバイナリをスタックから実行しなければならないことを指定するために使用します。 これにより、システムのデフォルトでは制限し、正当なプログラムがスタックからコードを実行することを妨げないようにできます。 このオプションは、(必要があれば) プログラムのプロバイダが設定し、プログラムをインストールする際に手動で行わなければならない操作を最小限に抑えるようにしてください。 もう 1 つの方法は、カーネルの調整可能パラメータ executable_stack を設定して、スタックを実行可能にするかどうかに関するシステム全体のデフォルトを設定する方法です。 executable_stack パラメータを sam sam(1M) を参照) で 1 に設定すると、 HP-UX カーネルに対して、保護されたプログラムスタックを実行しないように指示します。 旧リリースとの互換性の方がセキュリティより重要な場合は、この設定にしてください。 互換性よりセキュリティを重視したい場合は、パラメータを 0(ゼロ) に設定することをお勧めします。 この設定では、システムのセキュリティが大幅に向上し、かつ正当なアプリケーションに悪影響を与えません。 これらの設定を組み合わせることで、多くのアプリケーションに適した設定にすることができます。 例えば、 executable_stack を 0 に設定した後、1 つか 2 つの重要なアプリケーションが、スタックからの実行を行っているために、実行できなくなっていたとします。 このようなプログラムの例には、シミュレータやインタプリタのように、自身のコードを変更するものがあります。 これらの特殊なアプリケーションを正常に動作させつつ、 システムのデフォルトを制限された状態にしてセキュリティを確保するには、 executable_stack を 0 に設定して、スタックから実行する必要のある特定のバイナリに対して chatr +es enable を実行します。 これらのバイナリは、実行したときにこのマンページを参照するエラーメッセージを出力するので、簡単に識別できます。 executable_stack の設定可能な値は、次のとおりです。
下の表は、 プログラムのスタックから実行する場合の、 chatr +es と executable_stack の可能な組み合わせとその結果をまとめたものです。 スタックの実行許可を与えるかどうかを決定する場合、 chatr +es disable を実行した結果は、カーネルの調整可能パラメータ executable_stack の設定に依存し、バイナリに対して chatr +es を実行していない場合と同じになります。
戻り値chatr は、正常終了時にはゼロを返します。 コマンド行の内容が構文的に誤っている場合、または指定されたファイルのひとつ以上を処理できない場合、chatr は属性を修正できなかったファイルについての情報を返します。 ファイルを指定しなければ、 chatr は 10 進数の 255 を返します。 不正なオプションPA-RISC 32 ビットの chatr では、不正なオプションを指定すると、 chatr はコマンド行のワード数を返します。 例を次に示します。
PA-RISC 64 ビットの chatr では、不正なオプションを指定すると、 chatr は、最初の不正なオプションの後にある 非オプションワード の数を返します。
不正な引き数正しいオプションに不正な引き数を指定した場合、ファイル名を指定していなければ、PA-RISC 32 ビット および PA-RISC 64 ビットのどちらの chatr も、0 を返します。
PA-RISC 32 ビットの chatr では、ファイル名を指定すると (ファイルが存在するかどうかにかかわらず)、 chatr はコマンド行内のワード数を返します。
PA-RISC 64 ビット の chatr では、ファイル名を指定すると (ファイルが存在するかどうかにかかわらず)、 chatr は指定されたファイルの数を返します。
多言語化対応環境変数chatr の実行には、次の多言語化対応変数が影響を与えます。
多言語化対応変数が不当な値に設定されていると、 chatr は、多言語化対応変数がすべて C に設定されているものとして動作します。 environ(5) を参照してください。 これ以外に、次の環境変数が chatr に影響を与えます。
例a.out をデマンドロードに変更します。 chatr -q a.out 共有ライブラリを使用するプログラムファイルのバインディングモードを即時、非致命的に変更します。 また、 SHLIB_PATH 環境変数の使用を可能にします。 chatr -B immediate -B nonfatal +s enable a.out 共有ライブラリ libfoo.sl が依存する /usr/lib/libc.sl の実行時のパス検索を禁止します。 chatr +l /lib/libc.sl libfoo.sl 直前の chatr の実行でセグメントインデックス番号 5 が指定されている場合、ページサイズを 4 キロバイトに変更します。 chatr +si 5 +p 4K average64 参照その他:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||