LOGIN_OK(3)

名称
auth_ttyok, auth_hostok, auth_timeok - ログイン制約に基づくログインクラスのチェック用関数

ライブラリ
libutil

書式
#include <sys/types.h> #include <time.h> #include <login_cap.h> int auth_ttyok(login_cap_t *lc, const char *tty) int auth_hostok(login_cap_t *lc, const char *host, char const *ip) int auth_timeok(login_cap_t *lc, time_t t)

解説
この関数セットは、ログインが、 login.conf(5) という ログインデータベース上のログインクラス登録権限に基づき許可できるかどうかを 判定します。

auth_ttyok() は、名前付 tty が指定されたクラスのユーザで 利用可能かどうかを判定します。またそれが ttys.allow アクセスリストに載っており、 ttys.deny アクセスリストに載っていないこともチエックします。 tty デバイス経由でくるログインは、 ttys.allow リストがなく (あるいは指定されたログインクラスの登録権限定義がない) ても、空でない ttys.deny リストが存在しない限り、またはデバイスあるいは tty グループ( ttys(5) を参照のこと)がリストに載っていなければ、受入れられます。 tty に対するアクセスは、 tty デバイス名で固有の制限と範囲が決められます。また デバイス名はワイルドカード指定 (例えば、ttyD* または cuaD*) を含むか、または group=<name> タグが /etc/ttys に割り振られている場合、ttygroup の名前を定義します。 ttys と ttygroups の一致はケースによります。 NULL または文字列を tty parameter として渡すと、関数は 0 でない数値を返します。

auth_hostok() は、リモートロングインにおけるホスト側の制約をチエック します。この関数は、 host.allow および host.deny のログインクラスの権限レベルに対し、ホスト名や IP アドレス (具体的には n.n.n.n のようなテキスト形式で指定されます。) の両方のチエックを行います。 ttys およびそのグループについてと同様、許可、 非許可権限レコード内でワイルドカードや文字 クラスを使用できます。関数 fnmatch(3) は対応付けに使用されます。ホスト名の 対応付けは大文字か小文字かによります。この関数ではホスト名が完全形式で 記述 (たとえば、必要ならばローカルドメイン名が追加される) されている 必要があることに注意する必要があります。さらに、IP アドレスは標準的な 形式になっています。ホスト名やアドレス参照は行われません。

この関数の呼び出しは、ホスト名を使用するか、または IP アドレスを 指定せず (例えば NULL 指定) に実行できます。またマッチングはパラメータが 指定されなければ実行されません。どちらのパラメータについて NULL か空の文字列が渡された場合、0 以外の戻り値が返されます。

関数 auth_timeok() は、指定の時間値が、ログインクラス times.allow の範囲にあり、 times.deny アクセスリストにないかどうか判定します。 times.allow リストが存在しないか空であれば、指定時間が times.deny リストに示す時間帯にない限り、いつでもアクセス可能です。 times.allow および times.deny のフィールドに含まれる時間帯レコードの形式の詳細については、 login_times(3) のマニュアルページを参照してください。

戻り値
これらの関数からの戻り値が 0 でない場合、ログインが認可されています。 戻り値が 0 の場合は、対象が allow アクセスリストにないか deny アクセスリストに載っています。

関連項目
getcap(3), login_cap(3), login_class(3), login_times(3), login.conf(5), termcap(5)