PWAUTH(3)

名前
pwauth - 管理者の設定したパスワード認証ルーチン

書式
#include <pwauth.h>

int pw_auth (char *command, char *user, int reason, char *input);

説明
pw_auth は、指定されたユーザに対して管理者が設定した関数を呼び出す。

commandは認証プログラムの名前である。 どの認証プログラムを使用するかはパスワードファイルに記されたユーザ情報 により決定される。 この文字列には、セミコロンで区切られた一つ以上の実行ファイル名を指定する。 各々のプログラムは記されている順に実行される。 コマンドライン引数は以下に挙げる方法で指定される。

userは、/etc/passwdファイル中に記された、 認証されるユーザ名である。 ユーザエントリはユーザ名で指定される。 したがって、一意的でないユーザIDがあっても良く、 そのユーザIDに結びつけられた異なるユーザ名各々に対して異なる認証プログラム 及び認証情報を指定できる。

使用できる各々の認証方法は、全く異なる仕方で実行され得る。 特に記されていない場合は、ユーザとやりとりするために標準的な ファイルディスクリプタ0,1及び2を使うことが出来る。 認証を要請したユーザの同一性を調べるために実際のユーザIDを用いることも出来る。 reasonは以下のいずれかである

PW_SU
    指定したユーザの実ユーザIDに変更するために、コマンドを起動したユーザの 実ユーザIDの認証を行う。 -sオプションの後にユーザ名を指定して認証プログラムが呼び出される。

PW_LOGIN
    新たにログインセッションを作り出そうとしている指定されたユーザの認証を 行う。 -lオプションの後にユーザ名を指定して認証プログラムが呼び出される。

PW_ADD
    指定されたユーザに対して新たなエントリを作る。 これにより、認証プログラムが新規ユーザ用の記憶領域を準備することが出来る。 -aオプションの後にユーザ名を指定して認証プログラムが呼び出される。

PW_CHANGE
    指定されたユーザの既存のエントリを変更する。 これにより、認証プログラムが既存のユーザの認証情報を変更することが出来る。 -cオプションの後にユーザ名を指定して認証プログラムが呼び出される。

PW_DELETE
    指定されたユーザの認証情報を消去する。 これにより、以後この認証プログラムを用いて認証される事の無くなったユーザ 情報の記憶領域を回復することが出来る。 -dオプションの後にユーザ名を指定して認証プログラムが呼び出される。

PW_TELNET
    telnetコマンドを用いてシステムに接続して来たユーザの認証を行う。 -tオプションの後にユーザ名を指定して認証プログラムが呼び出される。

PW_RLOGIN
    rloginコマンドを用いてシステムに接続して来たユーザの認証を行う。 -rオプションの後にユーザ名を指定して認証プログラムが呼び出される。

PW_FTP
    ftpコマンドを用いてシステムに接続して来たユーザの認証を行う。 -fオプションの後にユーザ名を指定して認証プログラムが呼び出される。 ユーザとやりとりするために標準ファイルディスクリプタを用いることは出来ない。 標準入力ファイルディスクリプタは親プロセスに結びつけられており、 一方他の二つの出力ファイルディスクリプタは/dev/nullに結びつけられている。 pw_auth関数はファイルディスクリプタ0を用いて一行のデータを 認証プログラムにパイプする。

PW_REXEC
    rexecコマンドを用いてシステムに接続して来たユーザの認証を行う。 -xオプションの後にユーザ名を指定して認証プログラムが呼び出される。 リモートユーザとやりとりするために標準ファイルディスクリプタを用いることは 出来ない。 標準入力ファイルディスクリプタは親プロセスに結びつけられており、 一方他の二つの出力ファイルディスクリプタは/dev/nullに結びつけられている。 pw_auth関数はファイルディスクリプタ0を用いて一行のデータを 認証プログラムにパイプする。

最後の引数は PW_FTP 及び PW_REXEC の方法で用いられる認証データであり、 一行の文として扱われて、認証プログラムにパイプされる。 PW_CHANGE の方法でユーザ名が変更される場合は、inputの内容は 以前用いていたユーザ名となっている。

警告
この関数は実際のセッションを作り出すことはしない。 指定されたユーザのセッションを作り出す事を許可するか否かを答えるだけである。

まだネットワークオプションはテストしていない。

返り値
pw_auth関数は、認証プログラムが終了コード0で終了した場合は0を、 それ以外の場合はゼロ以外の値を返す。

関連項目
login(1), passwd(1), su(1), useradd(8), userdel(8), usermod(8)

AUTHOR
Julianne Frances Haugh (jockgrrl@ix.netcom.com)