名前 | 形式 | 機能説明 | 属性 | 戻り値 | 関連項目 | 注意事項
#include <tsol/prof.h>profstr_t *getprofstrbyname(char *name, int src);
tsolprof NIS+ データベースまたは /etc/security/tsol/tsoluserファイルから Trusted Solaris ユーザープロファイルについて説明するエントリを取得します。
getprofstrbyname() は、パラメータ nameに指定されるプロファイル名を持つプロファイルについての情報を検索します。
関数 setprofstr()、getprofstr()、endprofstr() は、データベースからプロファイルエントリを 列挙するのに使用します。setprofstr() は、Trusted Solaris プロファイルエントリのセットの先頭への列挙法を設定します (または取り消します)。この関数は、getprofstr() を初めて呼び出す前に呼び出します。getprofstrbyname() を呼び出すと、列挙位置が不確定な状態のままになります。stayopen フラグがゼロ以外の場合は、次に endprofstr() を呼び出すまで、オープンファイル記述子などの割り当て済み資源が保持されます。
getprofstr() を連続して呼び出すと、連続したエントリか、列挙の終了を示す NULLが返されます。
endprofstr() は、呼び出し元がこれ以上プロファイル strry の検索操作を実行したくない場合に呼び出します。すると、使用していた資源の割り当てが解除されます。endprofstr() の呼び出し後も、プロセスがプロァイル strry 検索関数を呼び出すことは可能ですが、効率が悪くなります。
関数 getprofstrbyname() と getprofstr() は、返された結果を格納するためのメモリーを割り当てる再入可能インタフェースで、シングルスレッドアプリケーションとマルチスレッドアプリケーションのどちらで使用しても安全です。getprofstrbyname() または free_profstr() のいずれかによって返されるポインタを解放するには、関数 free_profstr() を使用します。
パラメータ name は、NULL で終わる文字列の形式をとるプロファイル名へのポインタとします。
パラメータ src は、<tsol/tsol.h> に定義されている TSOL_SRC_FILES
、TSOL_SRC_NISPLUS
、TSOL_SRC_SWITCH
のどれに設定してもかまいません。ほとんどのアプリケーションでは、src パラメータは、システムが /etc/nsswitch.conf ファイルを使用してデータベースの最終的なソースを判別することを示す TSOL_SRC_SWITCH
に設定します。ただし、一部の管理アプリケーションでは、/etc/security/tsol/tsoluser ファイルからの読み取りには TSOL_SRC_FILES
オプションを、tsoluser NIS+ データベースからの読み取りを強制するには
TSOL_SRC_NISPLUS
オプションを使用します。
関数 putprofstr() は、既存のプロファイルエントリを置換し、
プロファイル名がまだ存在しない場合には新しいエントリを追加します。現在のところ、src パラメータは TSOL_SRC_NISPLUS
として処理され、すべての情報が NIS+ テーブルに書き込まれます。今後のリリースでは、ファイルや nsswitch.conf(4) がサポートされる予定です。
マルチスレッドアプリケーションでの列挙の場合、列挙内の位置はすべてのスレッドが共有するプロセス全体の属性です。マルチスレッドアプリケーションでは setprofstr() を使用できますが、これを使用すると、すべてのスレッドの列挙位置が取り消されます。複数のスレッドで getprofstr() の呼び出しをインタリーブすると、スレッドは tsolprof(4) データベースと無関係なサブセットを列挙します。
ユーザーエントリは、<tsol/prof.h> に定義される struct profstr_t 構造によって表現されます。
typedef struct profstr_t { char name; /* name of profile */ char desc; /* description */ char auths; /* comma separated list of authorization numbers */ char actions; /* semicolon separated action descriptions */ char cmds; /* semicolon separated command descriptions */ } profstr_t;
次の属性の説明については、attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWtsu |
MT レベル | MT- 安全 |
関数 getprofstrbyname()は、要求されたエントリが見つかった場合は profstr_t へのポインタを返し、それ以外の場合は、NULL を返します。
関数 getprofstr() は、エントリを正しく列挙できた場合は profstr_t へのポインタを返し、それ以外の場合は、列挙の終了を示す NULL を返します。
関数 putprofstr() は、成功時には 0を返します。
これらの関数を実行すると、実行時に共有オブジェクトの動的な読み込みとリンクが適用されるため、このマニュアルページで説明するインタフェースを使用するプログラムを静的にリンクすることはできません。
マルチスレッドアプリケーションをコンパイルする際、REENTRANT フラグの使い方については、Intro(3) の「マルチスレッドプログラミングに関する注意事項」を参照してください。