'\" te .\" Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. .TH ppriv 1 "2012 年 2 月 21 日" "SunOS 5.11" "ユーザーコマンド" .SH 名前 ppriv \- プロセス特権セットおよび属性の検査または変更 .SH 形式 .LP .nf \fB/usr/bin/ppriv\fR \fB-e\fR [\fB-f\fR {\fB+-}{ADMPTUX\fR}] [\fB-s\fR \fIspec\fR] [\fB-r\fR \fIrule\fR] \fIcommand\fR [\fIarg\fR]... .fi .LP .nf \fB/usr/bin/ppriv\fR [\fB-vn\fR] [ \fB-f\fR {\fB+-}{ADMPTUX\fR}] [\fB-S\fR] [\fB-s\fR \fIspec\fR] [\fB-r\fR \fIrule\fR] [\fIpid\fR | \fIcore\fR]... .fi .LP .nf \fB/usr/bin/ppriv\fR \fB-l\fR [\fB-vn\fR] [\fIprivilege-specification\fR | \fIextended-policy\fR]... .fi .LP .nf \fB/usr/bin/ppriv\fR \fB-q\fR [\fB-f\fR {\fB+-}{ADMPTUX\fR}] [\fIprivilege-specification\fR] .fi .SH 機能説明 .sp .LP \fBppriv\fR コマンドの最初の呼び出しでは、コマンド行の引数に従って変更された特権セットとフラグが指定された \fIcommand\fR が実行されます。 .sp .LP 2 番目の呼び出しでは、実行中のプロセスとコアファイルの特権の状態を検査または変更します。 .sp .LP 3 番目の呼び出しでは、定義されている特権および指定された特権または特権セットの指定に関する情報を一覧表示します。 .SH オプション .sp .LP サポートしているオプションは、次のとおりです。 .sp .ne 2 .mk .na \fB\fB-D\fR\fR .ad .RS 20n .rt 廃止。\fB-f\fR \fB+D\fR と同じです。 .RE .sp .ne 2 .mk .na \fB\fB-e\fR\fR .ad .RS 20n .rt 残りの引数をコマンド行として解釈し、指定された特権の属性およびセットでコマンド行を実行します。 .RE .sp .ne 2 .mk .na \fB\fB-f\fR {\fB+-}{ADMPTUX\fR}\fR .ad .RS 20n .rt 指定されたプロセスまたはコマンドに対してプロセスフラグを設定または設定解除します (\fBsetpflags\fR(2) を参照)。 .sp .ne 2 .mk .na \fBD\fR .ad .RS 5n .rt PRIV_DEBUG .RE .sp .ne 2 .mk .na \fBM\fR .ad .RS 5n .rt NET_MAC_AWARE、NET_MAC_AWARE_INHERIT .RE .sp .ne 2 .mk .na \fBP\fR .ad .RS 5n .rt PRIV_PFEXEC .RE .sp .ne 2 .mk .na \fBA\fR .ad .RS 5n .rt PRIV_PFEXEC_AUTH .RE .sp .ne 2 .mk .na \fBT\fR .ad .RS 5n .rt PRIV_PROC_TPD .RE .sp .ne 2 .mk .na \fBU\fR .ad .RS 5n .rt PRIV_TPD_UNSAFE .RE .sp .ne 2 .mk .na \fBX\fR .ad .RS 5n .rt PRIV_XPOLICY .RE .RE .sp .ne 2 .mk .na \fB\fB-l\fR\fR .ad .RS 20n .rt 現在定義されている特権をすべて \fBstdout\fR に書き込みます。 .RE .sp .ne 2 .mk .na \fB\fB-M\fR\fR .ad .RS 20n .rt 廃止。\fB-f\fR \fB+M\fR と同じです。 .RE .sp .ne 2 .mk .na \fB\fB-n\fR\fR .ad .RS 20n .rt ポート番号とユーザーを数字として表示します。通常、\fBppriv\fR は、ポート番号とユーザーをシンボルとして表示します。このオプションは、拡張ポリシーを表示する場合にのみ適用できます。 .RE .sp .ne 2 .mk .na \fB\fB-N\fR\fR .ad .RS 20n .rt 廃止。\fB-f\fR \fB-D\fR と同じです。 .RE .sp .ne 2 .mk .na \fB\fB-s\fR \fIspec\fR\fR .ad .RS 20n .rt スペース文字を含まない \fB[AEILP][+-=]\fR\fIprivsetspec\fR という形式の指定である \fIspec\fR に従ってプロセスの特権セットを変更します。 .sp .ne 2 .mk .na \fB\fBAEILP\fR\fR .ad .RS 15n .rt 変更する特権セットを示す 1 文字以上の英字を示します。これらは大文字と小文字の区別がなく、たとえば、\fBa\fR または \fBA\fR のいずれもすべての特権セットを示します。 .sp 特権セットの単一文字省略名の定義については、\fBprivileges\fR(5) を参照してください。 .RE .sp .ne 2 .mk .na \fB\fB+-=\fR\fR .ad .RS 15n .rt リストされた特権を \fIprivsetspec\fR で指定されたセットに、それぞれ追加 (\fB+\fR)、削除 (\fB-\fR)、または割り当て (\fB=\fR) する修飾子を示します。 .RE .sp .ne 2 .mk .na \fB\fIprivsetspec\fR\fR .ad .RS 15n .rt \fBpriv_str_to_set\fR(3C) で説明されている、コンマで区切られた特権セットの指定 (\fBpriv1\fR,\fBpriv2\fR など) を示します。 .RE 個々のセットにそれぞれ 1 つの割り当てを行うか、任意の数の追加および削除を行うかのいずれかであれば、同じセットを複数の \fB-s\fR オプションで変更することは可能です。つまり、単一のセットに対する割り当てと、追加または削除は相互に排他的です。 .RE .sp .ne 2 .mk .na \fB\fB-q\fR\fR .ad .RS 20n .rt 特権が実効セット内にあるかどうか、およびフラグが設定済みか未設定かをテストします。このプログラムは、すべてのテストが完了すると正常に終了します。 .RE .sp .ne 2 .mk .na \fB\fB-r\fR \fIrule\fR\fR .ad .RS 20n .rt 拡張ポリシーをインストールします。\fBprivileges\fR(5) を参照してください。 .sp 複数のルールを指定できます。新しいルールは、既存のポリシーに追加されます。既存のポリシーを置き換えるには、まず \fB-X\fR を使用してそのポリシーを削除し、次に \fB-r\fR を使用して新しいポリシーを追加します。 .RE .sp .ne 2 .mk .na \fB\fB-S\fR\fR .ad .RS 20n .rt 短い。可能なかぎり短い出力文字列でセットを報告します。デフォルトは移植性のある出力形式です。\fBpriv_str_to_set\fR(3C) を参照してください。 .RE .sp .ne 2 .mk .na \fB\fB-X\fR \fR .ad .RS 20n .rt 廃止。\fB-f\fR \fB-X\fR と同じです。 .RE .sp .ne 2 .mk .na \fB\fB-v\fR\fR .ad .RS 20n .rt 冗長。特権名を使用して特権セットを報告します。 .RE .SH 使用法 .sp .LP \fBppriv\fR ユーティリティーは、プロセスとコアファイルを検査し、それらの特権セットを出力または変更します。 .sp .LP \fBppriv\fR は、特権のデバッグを有効または無効にして、あるいは呼び出すプロセスよりも少ない特権でコマンドを実行できます。 .sp .LP サブプロセスを実行する場合、変更できるセットは \fBL\fR と \fBI\fR のみです。\fBppriv\fR が \fBP=E=I\fR で起動された場合、特権を削除できるのは \fBL\fR と \fBI\fR からのみです。 .sp .LP \fBppriv\fR は、プロセスから特権を削除する場合、または別のプロセスに特権を委譲する場合にも使用できます。プロセスを制御するには、\fBppriv\fR ユーティリティーの実効セットは、制御されるプロセスの \fBE\fR、\fBI\fR、および \fBP\fR の上位集合である必要があります。ユーティリティーの制限セットは、ターゲットの制限セットの上位集合である必要があります。ターゲットプロセスのユーザー ID が一致しない場合は、ユーティリティーの実効セットで \fB{PRIV_PROC_OWNER}\fR 特権を表明する必要があります。制御されるプロセスが値 \fB0\fR のユーザー ID を持つ場合、さらに制限が存在する可能性があります。\fBprivileges\fR(5) を参照してください。 .SH 使用例 .LP \fB例 1 \fR現在のシェルに対するプロセスの特権の取得 .sp .LP 次の例では、現在のシェルに対するプロセスの特権を取得します。 .sp .in +2 .nf example$ ppriv $$ 387: -sh flags = E: basic I: basic P: basic L: all .fi .in -2 .sp .LP \fB例 2 \fRシェルの継承可能な実効セットからの特権の削除 .sp .LP 次の例では、シェルの継承可能な実効セットから特権を削除します。 .sp .in +2 .nf example$ ppriv -s EI-proc_session $$ .fi .in -2 .sp .sp .LP サブプロセスはまだ親シェルを検査できますが、親に影響を及ぼすことはできません。親は \fBppriv\fR の子プロセスよりも多い特権を Permitted セットに持っているためです。 .sp .in +2 .nf example$ truss -p $$ truss: permission denied: 387 example$ ppriv $$ 387: -sh flags = E: basic,!proc_session I: basic,!proc_session P: basic L: all .fi .in -2 .sp .LP \fB例 3 \fR特権のデバッグを使用したプロセスの実行 .sp .LP 次の例では、特権のデバッグを有効にしてプロセスを実行します。 .sp .in +2 .nf example$ ppriv -e -f +D cat /etc/shadow cat[418]: missing privilege "file_dac_read" (euid = 21782), needed at ufs_access+0x3c cat: cannot open /etc/shadow .fi .in -2 .sp .sp .LP 特権のデバッグのエラーメッセージは、現在のプロセスの制御端末に送信されます。\fBneeded at\fR アドレス指定は、カーネル実装のアーティファクトであり、ソフトウェアの更新後にいつでも変更できます。 .sp .LP システムコール番号は、\fB/etc/name_to_sysnum\fR を使用するとシステムコールにマップできます。 .LP \fB例 4 \fR現在のゾーンで使用可能な特権の一覧表示 .sp .LP 次の例では、現在のゾーンで使用可能な特権を一覧表示します (\fBzones\fR(5) を参照)。大域ゾーンで実行すると、定義されているすべての特権が一覧表示されます。 .sp .in +2 .nf example$ ppriv -l zone ... listing of all privileges elided ... .fi .in -2 .sp .LP \fB例 5 \fR特権に対応したプロセスの検査 .sp .LP 次の例では、特権に対応したプロセスを検査します。 .sp .in +2 .nf example$ ppriv -S `pgrep rpcbind` 928: /usr/sbin/rpcbind flags = PRIV_AWARE E: net_privaddr,proc_fork,sys_nfs I: none P: net_privaddr,proc_fork,sys_nfs L: none .fi .in -2 .sp .sp .LP フラグの説明については、\fBsetpflags\fR(2) を参照してください。 .LP \fB例 6 \fR拡張ポリシーの下でのプロセスの実行 .sp .LP 次の例では、拡張ポリシーの下でプロセスを実行します。 .sp .in +2 .nf example$ ppriv -r '{file_write}:/home/casper/.mozilla/*' \e -r '{file_write}:/tmp/*,{proc_exec}:/usr/*' -e firefox .fi .in -2 .sp .sp .LP \fBprivileges\fR(5) を参照してください。 .LP \fB例 7 \fR起動されているプロセスの検査 .sp .LP 次の例では、例 6 で起動されたプロセスを検査します。 .sp .in +2 .nf example$ ppriv 101272 101272: /usr/lib/firefox/firefox-bin flags = PRIV_XPOLICY Extended policies: {file_write}:/home/casper/.mozilla/* {file_write}:/tmp/* {proc_exec}:/usr/* E: basic,!file_write,!proc_exec I: basic,!file_write,!proc_exec P: basic,!file_write,!proc_exec L: all .fi .in -2 .sp .LP \fB例 8 \fRフラグおよび特権のテスト。 .sp .LP 次の例は、フラグおよび特権をテストします。 .sp .in +2 .nf example$ if ppriv -q -f +D file_read; then echo Privilege debugging is enabled echo and file_read privilege detected .fi .in -2 .sp .SH 終了ステータス .sp .LP 次の終了ステータスが返されます。 .sp .ne 2 .mk .na \fB\fB0\fR\fR .ad .RS 12n .rt 正常終了。 .RE .sp .ne 2 .mk .na \fB0 以外\fR .ad .RS 12n .rt エラーが発生しました。 .RE .SH ファイル .sp .ne 2 .mk .na \fB\fB/proc/*\fR\fR .ad .RS 23n .rt プロセスファイル .RE .sp .ne 2 .mk .na \fB\fB/etc/name_to_sysnum\fR\fR .ad .RS 23n .rt システムコール名と番号のマッピング .RE .SH 属性 .sp .LP 属性についての詳細は、マニュアルページの \fBattributes\fR(5) を参照してください。 .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性タイプ属性値 _ 使用条件system/core-os _ インタフェースの安定性下記を参照。 .TE .sp .LP 呼び出しは「確実」です。出力は「不確実」です。 .SH 関連項目 .sp .LP \fBgcore\fR(1), \fBtruss\fR(1), \fBsetpflags\fR(2), \fBpriv_str_to_set\fR(3C), \fBproc\fR(4), \fBattributes\fR(5), \fBprivileges\fR(5), \fBtpd\fR(5), \fBzones\fR(5)