Trusted Solaris 開発ガイド

データ型、ヘッダーファイル、およびライブラリ

この章で説明しているプログラミングインタフェースを使用するには、次のヘッダーファイルが必要です。

#include <tsol/user.h>

#include <tsol/prof.h>

この章の例は、次のライブラリを使用してコンパイルしています。

-ltsoldb -lnsl -lcmd -ltsol

ユーザーエントリ

userent_t 構造体は、tsoluser(4) データベースのエントリ情報を含みます。このユーザーデータベースのエントリルーチンは、次の型の変数でデータを返します。

フィールド 

内容 

char *name;

当該エントリのユーザー名 

char *lock;

アカウントのロック状態 

char *gen;

パスワード生成の方法 

char *profiles;

使用されているユーザープロファイル 

char *roles;

なることのできる役割 

char *idletime;

ワークステーションのアイドル時間 

char *idlecmd;

アイドル時間に達したときのコマンド 

char *labelview;

内部または外部用のラベル表示 

char *labeltrans;

現在は未使用 

char *labelmin;

ユーザーの最下位ラベル 

char *labelmax;

ユーザーの最上位ラベル (認可上限) 

char *usertype;

一般ユーザー、一般の役割、管理役割のいずれか 

char *res1;

将来使用のため予約 

char *res2;

将来使用のため予約 

char *res3;

将来使用のため予約 

プロファイルエントリ

tsolprof(4) データベースエントリにアクセスするインタフェースには、2 種類あります。get*str() は、文字列に対する profstr_t 構造体のポインタでエントリを返します。get*ent() は、profent_t 構造体で情報を返します。この構造体では、コマンドとアクションの情報にリンクリストが使用されています。コマンドまたはアクションのリスト全体をステップ実行したい場合は、リンクリストを操作する方が簡単です。しかし、たとえばプロファイルの説明を確認するだけのように、データを詳しく確認する必要がない場合は、get*str() ルーチンの方が高速です。

すべての文字列を返す

profstr_t 構造体は、tsolprof データベースのエントリ情報を含みます。

フィールド 

内容 

char *name;

当該エントリのプロファイル名 

char *desc;

プロファイルの説明 

char *auths;

コンマで区切られた承認 ID 

char *actions;

セミコロンで区切られた CDE アクションの説明 

char *cmds;

セミコロンで区切られたコマンドの説明 

コマンドとアクションをリンクリストで返す

profent_t 構造は、tsolprof(4) データベースのエントリ情報を含みます。アクションとコマンドの情報は、リンクリストで返されます。

フィールド 

内容 

char *name;

当該エントリのプロファイル名 

char *desc;

プロファイルの説明 

char *auths;

コンマで区切られた承認 ID 

profact_t *actions;

プロファイル内の CDE アクションのリンクリスト 

profcmd_t *cmds;

プロファイル内のコマンドのリンクリスト 

アクションのリンクリスト

profact_t 構造体は、アクションのリンクリストを含みます。

フィールド 

内容 

char *actname

アクション名 

char *argclass

引数のクラス 

char *argtype

引数の種類 

char *argmode

引数のモード 

char *argcount

引数の数 

char *privs 

特権 

char *euid 

実効ユーザー ID 

char *egid 

実効グループ ID 

char *min 

割り当てられたラベル範囲における最下位のラベル 

char *max 

割り当てられたラベル範囲における最上位のラベル 

コマンドのリンクリスト

profcmd_t 構造体は、コマンドのリンクリストを含みます。

フィールド 

内容 

char *dir

コマンドが常駐するディレクトリ 

char *file

コマンドファイルの名前 

char *privs 

特権 

char *euid 

実効ユーザー ID 

char *egid 

実効グループ ID 

char *min 

割り当てられたラベル範囲における最下位のラベル 

char *max 

割り当てられたラベル範囲における最上位のラベル