seuidpgm ユーティリティ - trusted プログラムの抽出
UNIX で該当
capamsc141
UNIX で該当
seuidpgm ユーティリティは、Set-User-ID ビットまたは Set-Group-ID ビットがオンのすべてのプログラムを抽出します。seuidpgm はファイル システムをスキャンし、これらのプログラムを PROGRAM クラスに追加するための selang コマンドを作成します。
seuidpgm は、selang のコマンドでコマンドを作成し、そのコマンドを標準出力に書き込みます。selang ユーティリティへのパイプラインを使用することも、出力をファイルに送ることもできます。出力を編集して不要なプログラムを削除したり、プログラムをさらに追加することができるため、出力はファイルに送ることをお勧めします。この方法を使用して、システム内の不要な setuid プログラムを検索します。
UxImport ユーティリティを使用して、seuidpgm ユーティリティの実行前にユーザおよびグループを定義することをお勧めします。ただし、UxImport を事前に実行していない場合でも、-g オプションと -u オプションを指定して seuidpgm を実行するとユーザおよびグループを定義できます。
seuidpgm は、コマンド ラインで指定したすべてのパスを、開始パスのすべてのサブディレクトリまで検索します。複数の開始パスを使用できます。
任意の数のオプションを指定できます。複数のオプションを指定する場合は、各オプションをスペースで区切ります。
プログラムが setuid プログラムであり、write アクセス権限が割り当てられている場合、seuidpgm は、他のすべての setuid プログラムと同様にそのプログラムを処理します。ただし、標準エラーの警告も送信します。
PROGRAM クラスのレコードの制御方法の詳細については、「UNIX エンドポイント管理者ガイド」を参照してください。
このコマンドの形式は以下のようになります。
seuidpgm optionstartDir ... [-x excludeDir]
- -dUNIX のファイル アクセス許可を解析して許可されているファイル アクセスを決定する代わりに、defaccess を「execute」に設定し、PROGRAM クラスに setuid プログラムおよび setgid プログラムのエントリを自動的に作成します。setuid プログラムまたは setgid プログラムが相互にそれぞれのプログラムを実行する場合もあります。このオプションを指定しない場合、setuid または setgid プログラムを実行しようとするプログラムは、それらを実行できません。このオプションを使用することをお勧めします。
- -fFILE クラスおよび PROGRAM クラスの両方のルールを作成します。
- -gsetgid プログラムの GROUP レコードを作成します。このオプションは、UxImport を実行していない場合にのみ使用してください。
- -lハードリンクまたはシンボリックリンクを持つプログラムに 1 つの許可を作成します。ファイル システムを root ディレクトリからではなく特定のディレクトリのみからスキャンし、l オプションを指定する場合は、コマンド ラインで複数の開始パスを使用します。複数の開始パスを使用しないと、l オプションが無効になることがあります。
- -nNFS をスキャンしません。このオプションを使用することをお勧めします。
- -oファイル名を標準出力に書き込みますが、selang のコマンドは作成しません。
- -psetuid プログラムを NFS ディレクトリから有効にします。ただし、マウント テーブルが、マウントされたファイル システムから setuid を実行することを許可している場合にのみ実行できます。
- -qQuiet-Mode でユーティリティを実行します。つまり、標準エラーに対するエラー メッセージは送信されません。
- -sPROGRAM クラスに setuid/setgid プログラムのエントリを作成するのではなく、SECFILE クラスにエントリを作成します。
- -usetuid プログラムの USER レコードを作成します。このオプションは、UxImport を実行していない場合にのみ使用してください。
- -xexcludeDirツリーからディレクトリを除外します。指定されたディレクトリでは、setuid プログラムおよび setgid プログラムは検索されません。このオプションはコマンド ラインの最後に指定する必要があります。パスは、除外するディレクトリの完全パスです。複数のディレクトリを除外するには、各ディレクトリに対して -x オプションを繰り返し指定します。
- startDirtrusted プログラムを検索する上位ディレクトリのスペース区切りリストを指定します。
例
- 重複する名前または同一の i-node を Quiet モードでチェックし、NFS をスキャンしないという設定で、set-user-id または set-group-id が「on」、defaccess が「execute」に指定されたすべてのプログラムを追加する selang のコマンドを出力するには、以下のコマンドを入力します。プログラムは、/usr ディレクトリとそのサブディレクトリ、/var ディレクトリとそのサブディレクトリ、および /etc ディレクトリとそのサブディレクトリをスキャンします。出力は、ホーム ディレクトリにある seprogs.seos ファイルに送られます。seuidpgm -dlqn /usr /var /etc > ~/seprogs.seos出力内容は以下のコードのようになります。## *************************************************## seuidpgm List Sun Feb 9 14:24:16 1997 # Start Path= /usr # ************************************************ nr PROGRAM /usr/lpp/bos/inst_root/lpp/inu_LOCK defaccess(EXEC) nr PROGRAM /usr/lpp/X11/bin/xlock defaccess(EXEC) nr PROGRAM /usr/bin/setsenv defaccess(EXEC) nr PROGRAM /usr/bin/shell defaccess(EXEC) nr PROGRAM /usr/bin/su defaccess(EXEC) nr PROGRAM /usr/bin/sysck defaccess(EXEC) nr PROGRAM /usr/bin/tcbck defaccess(EXEC) nr PROGRAM /usr/bin/usrck defaccess(EXEC) nr PROGRAM /usr/bin/vmstat defaccess(EXEC)
- /home ディレクトリを除き、root ディレクトリとそのすべてのサブディレクトリをスキャンするには、以下のコマンドを入力します。seuidpgm -qln / -x /home