setpwdb または endpwdb サブルーチン

目的

認証データベースを開くか閉じます。

ライブラリー

セキュリティー・ライブラリー (libc.a)

構文

#include <userpw.h>
int setpwdb ( Mode)
int Mode;
int endpwdb ( )

説明

これらの機能は、認証データベースへのアクセスをオープンおよびクローズするために使用されます。 getuserpw または 書き込みユーザー PW サブルーチンを呼び出すプログラムは、 setpwdb サブルーチンを呼び出してデータベースをオープンし、 Endpwdb サブルーチンを呼び出してデータベースをクローズする必要があります。

setpwdb サブルーチンは、指定されたモードで認証データベースを開きます (まだ開いていない場合)。 オープン・カウントは 1 だけ増やされます。

endpwdb サブルーチンは、オープン・カウントを 1 つ減らし、このカウントが 0 になると認証データベースをクローズします。 その後、個々のデータ項目を参照すると、メモリー・アクセス違反が発生する可能性があります。 endpwdb サブルーチンは、 getuserpw、putuserpw、 または putuserpwhist サブルーチンによって割り当てられたスペースも解放します。 セキュリティー上の理由から、スペースを解放するとパスワード・フィールドがクリアされます。 コミットされていない変更データはすべて失われます。

パラメーター

項目 説明
モード オープンのモードを指定します。 このパラメーターには、 usersec.h ファイルに定義されている以下の値の 1 つ以上を入れることができます。
S_READ (S_READ)
読み取りアクセスを指定します。
S_WRITE (S_WRITE)
更新アクセスを指定します。

戻り値

setpwdb および endpwdb サブルーチンは、成功を示すために値 0 を戻します。 そうでない場合は-1が返され、エラーを示すerrnoグローバル変数が設定される。

エラー・コード

以下に該当する場合、 setpwdb および endpwdb サブルーチンは失敗します。

項目 説明
EACCES データ要求に対するアクセス許可が拒否されました。

これらの関数は両方とも、他のサブルーチンからエラーを戻します。

セキュリティー

アクセス制御: 呼び出しプロセスは、認証データにアクセスできる必要があります。

アクセスされるファイル:

モード ファイル
rw /etc/security/passwd
rw /etc/passwd