このデータは、BERKELEY SOFTWARE DESIGN, INC.のライセンスプログラムの一部です。プログラムの著作権は、BSDI、カリフォルニア大学理事会、マサチューセッツ工科大学、Free Software Foundation その他にあります。
LOGIN.CONF(5) BSD プログラマのマニュアル LOGIN.CONF(5)
名前
login.conf - ログインクラス機能データベース
構文
/etc/login.conf
説明
login.conf ファイルではログインクラスのさまざまな属性を記述します。ログインクラスは、どの認証スタイルが使用可能であるか、セッションリソース制限、環境セットアップ等を決めます。本来は login(8) プログラム用に設計されましたが、他のプログラム、たとえば ftpd(8) でもどのような認証方法が使用可能であるかを決めるのに使用できます。また、ユーザ環境のセットアップが必要な rexecd(8) などのプログラムでも使用できます。
機能
ファイルレイアウトの記述については、getcap(3) をご覧ください。login.conf ファイルの全エントリは、ブール値または値から機能を区切るために '=' を使用するかのいずれかです。タイプは機能テーブルの後に記述します。
名前 タイプ デフォルト 説明 alwaysuseklogin bool false kerberos スタイルの認証で .klogin ファイルを常にチェックします。通常、このファイルは非 null kerberos インスタンスが与えられている場合 (たとえば user.root) のみチェックします。 approve program ログインを承認するデフォルトのプログラム approve-service program service のログインを承認するプログラム auth list passwd 認められている認証スタイルです。最初の値がデフォルトのスタイルです。 auth-type list type認証タイプに認められている認証スタイル classify program ログインタイプを分類します。 copyright file 追加著作権情報を含むファイル coredumpsize size 最大コアダンプサイズの制限 cputime time CPU使用制限 datasize size 最大データサイズ制限 filesize size 最大ファイルサイズ制限 harduserlimit bool false このセッションが同時ユーザのライセンス番号を越えていると、ユーザはログインが認められません。 hushlogin bool false $HOME/.hushlogin ファイルを持っている場合と同じです。login(8) をご覧ください。 ignorenologin bool false nologin ファイルに影響されません。login(8) をご覧ください。 stacksize size 最大スタックサイズ制限 maxproc number 最大プロセス数 memorylocked size コアメモリサイズ制限における最大ロック memoryuse size 最大コアメモリ使用サイズ制限 minpasswordlen number 6 ローカルパスワードが取る長さの最小で、passwd(1) ユーティリティで使用します。 nologin file ファイルが存在する場合に表示され、login セッションが終了します。 openfiles number プロセスごとに開く最大ファイル数 path path /bin /usr/bin デフォルトの検索パス priority number 初期優先 (nice) レベル requirehome bool false ログインにホームディレクトリが必要です。 shell program パスワードファイルで指定したシェルではなく、実行するセッションシェルです。SHELL 環境変数にはパスワードファイルで指定したシェルが含まれます。 term string su 他の方法で決められない場合のデフォルトの端末タイプです。 umask number 022 初期 umask です。8 進数で確実に解釈するために、常に先頭は0です。umask(2) を参照してください。 welcome file /etc/motd ウェルカムメッセージを含むファイル widepasswords bool false passwd(1) ユーティリティ使用時に新しいワイドパスワードフォーマットを使用します。パスワードには128文字まで有効です。 リソース制限エントリ (cputime、filesize、datasize、memoryuse、memorylocked、maxproc および openfiles) は、実際には最大制限と現在の制限の両者を指定します (getrlimit(2) をご覧ください)。現在の制限は、ユーザが現在の制限を最大制限まで増やせるのに対して、通常使用している制限です。最大制限と現在の制限は -max または -cur を追加して機能名 (たとえば openfiles-max や openfiles-cur) に個別に指定できます。
BSDI BSD/OSでは、x- または X- で始まる機能を定義することはありません。これらは(コントリビュートソフトウェアで含まれていない場合は) 外部使用のために予約されます。
引数タイプは次のとおり定義されます。
file
テキストファイルへのパス名
list
値のカンマ区切りリスト
number
数字です。先頭の 0x は数字が16進数で表現されていることを示します。先頭の 0 は数字が 8 進数で表現されていることを示します。他の数字は10進数として扱われます。
path
パス名のスペース区切りリストです。パス名の最初の文字が ~ である場合、 ~ はユーザのホームディレクトリに展開されます。
program
プログラムへのパス名
size
バイト単位でサイズを表現する number です。後ろには、値を 512 倍する b、1 K (1024) 倍する k、1 M (1048576) 倍する m が付きます。
time
秒単位の時刻です。時刻は一緒に追加される一連の数字として表現されます。各数字の後ろに時刻の単位を表現する文字を付けます。
y 365 日 を 1 年とする年を示します。 w 7 日を 1 週とする週を示します。 d 24 時間を 1 日とする日を示します。 h 60 分を 1 時間とする時間を示します。 m 60 秒を 1 分とする分を示します。 s 秒数を示します。 たとえば、1時間半を示す場合に使用される文字列は次のようになります。
1h30m
認証
BSDI BSD/OS では BSD認証を使用し、さまざまな認証スタイルから構成されています。現在提供されている認証スタイルは次のとおりです。
activ
ActivCard トークンを使用して認証します。login_activ(8) をご覧ください。
chpass
ユーザのパスワードを変更します。login_chpass(8) をご覧ください。
crypto
CRYPTOCard トークンを使用して認証します。login_crypto(8) をご覧ください。
kerberos
パスワードを要求し、kerberos サーバからのチケット要求に使用します。kerberos(1) をご覧ください。
krb-or-pwd
パスワードを要求し、最初に kerberos 認証スタイルを試みます。失敗した場合は同じパスワードを passwd 認証スタイルで使用します。kerberos(1) をご覧ください。
lchpass
ユーザのローカルパスワードを変更します。login_chpass(8) をご覧ください。
passwd
パスワードを要求し、master.passwd ファイルのパスワードを参照してチェックします。
radius
通常は別の認証タイプにリンクされているので、認証を行うには radius サーバに接続します。login_radius(8) をご覧ください。
rchpass
ユーザの rpasswd パスワードを変更します。login_rchpass(8) をご覧ください。
reject
パスワードを要求し、いずれの要求も拒否します。login_reject(8) をご覧ください。
rpasswd
パスワードを要求し、rpasswd.db ファイルのパスワードを参照してチェックします。
skey
チャレンジを送信して応答を要求し、その応答を S/Key(tm) 認証でチェックします。skey(1) をご覧ください。
snk
SecureNetキートークンを使用して認証します。login_snk(8) をご覧ください。
token
汎用 X9.9 トークンを使用して認証します。login_token(8) をご覧ください。
認証には複数の情報を必要とします。
class
使用されているログインクラス
service
認証を要求するサービスのタイプです。サービスタイプは認証プログラムがユーザに提供できる情報は何か、ユーザが認証プログラムに提供できる情報は何かを決めるのに使用されます。 サービスタイプログインはほとんどの場合に適切です。他の2つのサービスタイプであるチャレンジと応答は、ftpd(8) や radiusd(8) のようなプログラムによって提供され、使用します。サービスタイプが指定されていない場合は、login を使用します。
style
使用されている認証スタイル
type
認証タイプで、使用可能な認証スタイルを決めるのに使用されます。
username
認証するユーザ名です。名前には、たとえば ”user.root'' など、Kerberos 認証により使用されるようなインスタンスが含まれます。使用されている認証スタイルがこのようなインスタンスをサポートしていない場合、要求は失敗します。
認証を要求するプログラムでは、ユーザ名と認証スタイルを指定する必要があります (たとえば、login(8) はユーザからユーザ名を要求します。ユーザはオプション的に認証スタイルを指定するために "user:style" の形式でユーザ名を入力します)。プログラムを要求する場合は、実行される認証のタイプも指定します。ほとんどのプログラムでは、複数の認証スタイルを持っている場合でも、シングルタイプのみです。つまり、ftpd(8) は常に ftp タイプの認証を要求し、su(1) は常に su タイプの認証を要求します。login(8) ユーティリティは中でも特殊で、/etc/ttys ファイルにある適切な tty (ttys(5) をご覧ください) 情報に基づいて認証タイプを選択します。
使用されるクラスは通常、password ファイル (passwd(5) をご覧ください) のクラスフィールドにより決まります。
クラスを使用して、login.conf ファイルで対応するエントリを調べます。認証タイプが定義され、そのエントリに auth-type の値が存在する場合、潜在的認証スタイルのリストとして使用されます。認証タイプが定義されていない場合、またはクラスに auth-type が指定されていない場合は、auth の値は使用可能な認証スタイルのリストとして使用されます。
ユーザが認証スタイルを指定しなかった場合、使用可能なスタイルリストの最初のスタイルが使用されます。ユーザが認証スタイルを指定し、そのスタイルが使用可能なスタイルのリストにある場合は、指定したスタイルが使用されます。その他の場合は要求が拒否されます。
いずれの指定スタイルでも、/usr/libexec/login_style プログラムが認証の実行に使用されます。このプログラムの構文は次のとおりです。
/usr/libexec/login_style [-v name=value] [-s service] username class
-v オプションは認証プログラムに任意情報を指定するのに使用します。任意の数の -v オプションが使用されます。login(8) プログラムで -v オプションにより提供されるのは次のとおりです。
auth_type
使用する認証のタイプ
fqdn
-hオプションによるログインに提供されるホスト名
hostname
リモートのホスト名として、utmp ファイルに login(8) という名前を配置します。
local_addr
-Lオプションにより login(8) に与えられるローカル ip アドレス
remote_addr
-Rオプションにより login(8) に与えられるリモート ip アドレス
style
このユーザに使用される認証のスタイル (以下の承認スクリプトをご覧ください) 。
su(1) プログラムで -v オプションにより提供されるのは次のとおりです。
wheel
ルートになろうとしている場合に、ユーザが group wheel にあるかどうかを示すため "yes" または "no" のいずれかを設定します。認証タイプによっては、スーパユーザになるために su(1) プログラムを使用する時に、ユーザが group wheel にあることが要求されます。
認証プログラムが実行される場合、環境には PATH=/bin:/usr/bin と SHELL=/bin/sh の値のみが含まれます。ファイル記述子 3 が読み書きのために開きます。認証プログラムは、このファイル記述子に次の文字列を1またはそれ以上書き込む必要があります。
authorize
ユーザは認可されています。
authorize secure
ユーザは認可され、ルートは保護端末でない場合でもログインが認められます。不安定なラインでも安全な認証スタイルによってのみ送信する必要があります。
reject
認可が拒絶されます。(reject と authorize のコマンドを両方送信することが適切であるかは疑問ですが) ユーザが認可されたという通知は、いずれも上書されます。
reject challenge
認可が拒絶され、challenge の値によりチャレンジが使用可能となります。
reject silent
認可が拒絶されますが、エラーメッセージは何も生成されません。
remove file
何らかの理由で login セッションに失敗した場合、終了前に file (たとえば kerberos チケットファイル) を削除します。
setenv name value
loginセッションが成功すると、環境変数 name を指定 value に 設定する必要があります。
value name value
内部変数 name を指定された value に設定します。value には出力できる文字のみが含まれていなければなりません。複数の \ シーケンスを使用して、非出力文字を導入します。\ シーケンスは次のとおりです。
\n 改行 \r キャリッジリターン \t タブ \xxx 8 進の値 xxx で表現される文字です。
値は 8 進の1桁、2桁 または 3桁の数です。\c 文字列を c の値で置き換えます。
初期スペースまたは \ 文字自体を引用できます。現在は次の値を定義できます。
challenge
以下のチャレンジに関するセクションをご覧ください。
errormsg
設定されている場合、値が認証が失敗した理由です。呼び出しプログラムがユーザを拒絶する場合、表示することを選択できますが、表示は必要ではありません。
認証を成功させるためには、認証プログラムがファイル記述子 3 に authorize または authorize ルートの構文を書き込み、0 の値で終了することが必要です。
認証プログラムは、ルートとして呼び出されると想定することはできませんし、ルートとしては呼び出されないと想定することもできません。ファイルにアクセスする特殊なパーミッションが必要である場合は、setgid または適切な user/group への setuid でなければなりません。chmod(1) をご覧ください。
チャレンジ
認証プログラムがチャレンジのサービス付きで呼び出される場合、次の3とおりのいずれかを行う必要があります。
認証のこのスタイルがチャレンジ応答をサポートしている場合、内部変数 challenge をユーザの適切なチャレンジに設定する必要があります。設定は上記にリストされている value コマンドで行います。また、プログラムは reject challenge を発行し、0 ステータスで終了しなければなりません。以下の「応答」についてのセクションをご覧ください。
認証のこのスタイルではチャレンジ応答はサポートされていないものの、応答サービス (以下に説明) をサポートしている場合は、reject silent を発行し、0 ステータスで終了しなければなりません。
認証のこのスタイルが応答サービスをサポートしていない場合は、不明サービスタイプについてのクレームがあり、失敗するだけです。0 以外のステータスで終了しなければなりません。
応答
認証プログラムが応答のサービスで呼び出され、このスタイルがこの認証モードをサポートする場合は、ファイル記述子3から2つのnullで終わる文字列を読み込む必要があります。最初の文字列は、ユーザに発行された チャレンジ(上記のチャレンジサービスで取得)です。2番目の文字列はユーザが与えたresponse(つまり パスワード)です。responseが指定challengeに訂正される場合、認証は受け入れられ、そうでなければ拒否されます。challengeは任意の空の文字列でも可能で、呼び出しプログラムがユーザからの response の取得に先立ち、最初にchallengeを取得したことを意味します。すべての認証スタイルが空のチャレンジをサポートしているわけではありません。
承認
承認プログラムの構文は次のとおりです。
approve [-v name=value] username class service
認証プログラムの場合と同じように、承認プログラム実行される時に書き込みのためにファイル記述子3が開かれます。-vオプションは認証プログラムの場合と同じです。認証プログラムとは異なり、承認プログラムでは、authorizeまたはauthorizeルートの構文を明確に送信する必要はありません。0または0以外の値で終了することが必要であるだけです。0の終了値は authorize ステートメントに相当し、0以外は rejectステートメントに相当します。承認または拒否以外には情報を提供しない単純なプログラムを可能にしています。
分類
分類プログラムの構文は次のとおりです。
classify [-v name=value] [-f] [user] -f
オプションの記述については、login(8)をご覧ください。-vオプションは認証プログラムの場合と同じです。userがある場合は、login(8)ログインに渡されるユーザ名です。
分類プログラムの一般的なジョブは、どの認証タイプが実際に使用されるか、おそらくリモート IP アドレスを基準に決めることです。また、ホスト名を再指定して utmp(5) ファイルに含めたり、ログインの試みを完全に拒否したり、追加ログインバナー (たとえば /etc/issue)の出力も行います。
分類エントリは、ユーザが誰であるかを認識する前に使用する場合は、デフォルトクラスにのみ有効です。分類スクリプトは、認証プログラムが行うのと同じように、環境変数または他のコマンドをファイル記述子 3 の login(8) に返します。AUTHTYPE および REMOTENAME の2つの変数を使用して、新しい認証タイプ (タイプには auth- Na type の形式があることが必要) を指定し、login にそれぞれ -h オプションを上書きします。
参照
BSDI BSD/OS 1995 年 2 月 23 日