tail head cat sleep
QR code linking to this page

manページ  — LOGIN.CONF

名称

login.conf – ログインクラス ケーパビリティ データベース

内容

書式

/etc/login.conf, ~/.login_conf

解説

login.conf には、ログインクラスについてのさまざまな属性やケーパビリティが 含まれています。 ログインクラス (ユーザアカウントデータベースである /etc/master.passwd のそれぞれの行について自由に設定できる注釈) は、セッションの アカウンティングやリソース制限、ユーザ環境設定などを決定します。 ログインクラスはシステム内のさまざまなプログラムから利用され、 ユーザのログイン環境を設定するほか、 ポリシ、アカウンティング及び管理上の制限を設定します。 ログインクラスはまた、 システムや利用可能な種々の認証機構に対するユーザ認証手段を提供します。 ここに記述した以外の属性は、サードパーティによる packages で利用可能です

システムのユーザクラスケーパビリティデータベースである /etc/login.conf の中の "default" という特別なレコードは、 /etc/master.passwd 内に有効なログインクラスを持たない root 以外のすべてのユーザに よって自動的に使われます。有効なログインクラスを持たない uid が 0 の ユーザは、"root" レコードが存在する場合はそのレコードが、 存在しない場合は "default" レコードがログインクラスとして使われます。

FreeBSD においては、個々のユーザは .login_conf というファイルをホームディレクトリに作成することができます。 このファイルは (/etc/login.conf と) 同じフォーマットで、 レコード id が "me" である 1 エントリのみで構成されます。 もし .login.conf が存在するならば、このファイルは login(1) によって使用され、システムのログインケーパビリティデータベースによって 指定されたユーザ環境設定を上書き設定します。 その際、ログインケーパビリティのサブセット、 典型的には承認やリソース制限そしてアカウンティングを含まないもの のみが上書きされます。

クラスケーパビリティデータベースのレコードは、コロンで区切られた いくつかのフィールドから構成されています。 各レコードの最初のフィールドは、レコードを特定するための 1 つまたは複数の名前で、それらは '|' 文字で区切られます。 その最初の名前が、最も一般化された短縮名称です。 最後の名前は、ログインケーパビリティエントリをより分かりやすく説明した 長い名前であるべきで、他の名前はその同義語です。 すべての名前は小文字かつ空白を含まないようにすべきですが、 最後の名前は可読性を考慮して、大文字やブランクを含んでいてもよいでしょう。

ケーパビリティデータベースのフォーマットについての詳細な説明は getcap(3) を参照してください。

ケーパビリティ

データベース内のそれぞれの行に含まれるフィールドは、 getcap(3) の慣習に従い、ブール型、文字列型 ‘amp;=’ 数値型 ‘amp;#’ があります。 しかしながら数値データのところは、数値型が拒否され文字列型が 受け入れられることがあったり、両方の書式が受け入れられることもあります。 値は次のカテゴリに分類されます。
bool 名前が存在する場合、ブール値は真になります。 そうでない場合、偽になります。
file データファイルへのパス名
program
  実行可能ファイルへのパス名
list コンマや空白で区切られた値のリスト (または値の組)
path 普通の csh の慣習に従った、空白やコンマで区切られたパス名のリスト (先頭のユーザ名を伴う/伴わないチルダはホームディレクトリに展開される等)
number 10 進数 (デフォルト)、16 進数 (0x で始まる)、または 8 進数 (0 で始まる) の 数値型の値。数値型の場合、設定できる値は 1 つだけです。 数値型は文字列型のフォーマットでも指定できる場合があります (ケーパビリティタグ '#' の代わりに '=' で値が区切られているなど)。 どの方法が使われた場合でも、データベース中のすべての行は修正したい行の値を 正確に上書きするために、同じ方法を用いなければなりません。
size サイズを表す文字。単位のデフォルトの解釈はバイトで、サフィックスに よって別の単位を指定できます。
b 512 バイトブロックの明示的な指定
k キロバイトの指定 (1024 バイト)
m 1 メガバイトの乗数の指定 (1048576 バイト)
g ギガバイト単位の指定。そして
t テラバイトの記述。
サイズの値は数値であり、サフィックスの大文字小文字は重要ではありません。 連続した値は足し込まれます。
time 時間の期間。デフォルトの単位は秒。 プレフィックスによって別の単位を指定できます。
y 1 年を 365 日で数えた年数の指定
w 週の数の指定
d 日数
h 時間数
m 分数
s 秒数
連続した値は足し込まれます。 たとえば 2 時間 40 分は 9600s、160m または 2h40m と 表現することができます。

特別な tc=value 表記を使用することにより、通常の約束事であるケーパビリティエントリの 補間が可能です。

リソース制限

"名称 解説

"coredumpsize
size コアダンプサイズの最大値制限

"cputime
time CPU 使用制限

"datasize
size データサイズの最大値制限

"filesize
size ファイルサイズの最大値制限

"maxproc
number プロセス数の最大値制限

"memorylocked
size コアメモリロック可能量の最大値制限

"memoryuse
size コアメモリ使用量の最大値制限

"openfiles
number プロセスごとにオープンできるファイル数の最大値制限

"sbsize
size 最大のソケットバッファサイズ

"vmemoryuse
size プロセスあたりの最大総 VM 使用量

"stacksize
size スタックサイズの最大値制限

これらのリソース制限エントリは、実際には最大値と現在の 制限値の両方を指定します ( getrlimit(2) を参照してください)。 普通は現在の制限値 (ソフトリミット) が使われますが、 ユーザは現在の制限値を最大制限値 (ハードリミット) まで増やすことが 許されています。 最大制限値と現在の制限値はケーパビリティ名に各々 -max 及び -cur を 追加することによって指定できます。

環境

"名称 解説

"charset
string $MM_CHARSET 環境変数の明示的な設定値

"hushlogin
bool false ~/.hushlogin ファイルがある場合と同じ

"ignorenologin
bool false nologin によってログインを禁止されません

"ftp-chroot
bool false FTP 接続を、chroot(2) を使用してユーザの HOME ディレクトリへ制限します。 詳細は ftpd(8) を参照してください。

"label
string MAC ポリシの定義。maclabel(7) [英語] 参照

"lang
string $LANG 環境変数を指定した値に設定します

"manpath
path マニュアルページのデフォルト検索パス

"nocheckmail
bool false ログイン時にメールのステータスを表示します

"nologin
file このファイルが存在する場合、ファイルの内容が画面に表示され、そのログインセッションは終了されます

"path
path /bin /usr/bin デフォルトコマンド検索パス

"priority
number 優先度 (nice) レベルの初期値

"requirehome
bool false ログインのために有効なホームディレクトリが必要

"setenv
list コンマで区切られた環境変数とその設定値のリスト

"shell
prog パスワードファイルで指定されているシェルより優先して実行されるセッションシェル。SHELL 環境変数の値は、パスワードファイルで指定されているものになります。

"term
string 他の手段によって決定できない場合のデフォルトの端末タイプ

"timezone
string $TZ 環境変数のデフォルト値

"umask
number 022 umask の初期値。続く数字が 8 進数と解釈されるように、常に 0 から始めます

"welcome
file /etc/motd ウェルカムメッセージが入っているファイル

認証

"名称 解説

"copyright
file 追加のコピーライト情報を含んだファイル

"host.allow
list クラス内のユーザがアクセス可能なリモートホストワイルドカードのリスト

"host.deny
list クラス内のユーザがアクセス不可なリモートホストワイルドカードのリスト

"login_prompt
stringlogin(1) が与えるログインプロンプト

"login-backoff
number 3 この回数のログイン試行がなされた後、後続する試行に対してバックオフ遅延が追加されます。

"login-retries
number 10 ログイン失敗までに可能な、ログイン試行回数。

"passwd_format
string md5 新規パスワードが使用する暗号フォーマット。 有効な値は "md5", "des", "blf" です。 NIS クライアントが、 FreeBSD ではない NIS サーバを使用する場合、 おそらく "des" を使用すべきでしょう。

"passwd_prompt
stringlogin(1) が表示するパスワードプロンプト

"times.allow
list ログインが許されている時間帯のリスト

"times.deny
list ログインが許されない時間帯のリスト

"ttys.allow
list クラス内のユーザがアクセスに使用できる端末と端末グループのリスト

"ttys.deny
list クラス内のユーザがアクセスに使用不可な端末と端末グループのリスト

"warnexpire
time 失効しそうなアカウントに対する事前の注意を行なう時間

"warnpassword
time 失効しそうなパスワードに対する事前の注意を行なう時間

これらのフィールドは、ログイン認証システムの中で passwd(1) や、その他のプログラムから使用される予定です。

環境変数を設定するケーパビリティは、その中の文字 ‘amp;~’ と ‘amp;$’ の両方がスキャンされ、これらはそれぞれ ユーザのホームディレクトリ及びユーザ名に置換されます。 環境変数中にこれらの文字をそのまま含める場合には、 その前にバックスラッシュ '\' をつけてエスケープします。

host.allow host.deny エントリはコンマで区切られたリストで、システムへのリモートアクセスの チェックに使われます。 これらはホスト名か IP アドレスまたはその両方を含むリストからなり、 それらに対してリモートログインのチェックが行われます。 このリストの各項目は、ワイルドカード一致用にシェルプログラムが使用しているのと 同じ書式のワイルドカードを含むことができます (実装の詳細は fnmatch(3) を参照してください)。 ホストのチェックは、リモートシステムのインターネットアドレス と (もし有効なら) ホスト名の両方をつきあわせて行われます。 両方のリストが空かもしくは指定されていない場合、あらゆるリモートホスト からのログインは許可されます。 host.allow が 1 つかそれ以上のホストを含む場合、リスト中の 各項目のどれかにマッチしたリモートシステムのみがログインを許されます。 host.deny が 1 つかそれ以上のホストを含む場合、そのリストのどれかに マッチしたホストからのログインが禁止されます。

times.allow times.deny エントリはコンマで区切られた期間のリストであり、この期間はクラス内の ユーザがログインを許されます。 これらは 1 つ以上の日のコード指定と、これに続けて 24 時間表記の開始時刻と 終了時刻をハイフンまたはダッシュで区切ったものとして表現されます。 たとえば MoThSa0200-1300 は、月、木、土の 午前 2 時から午後 1 時と解釈されます。 これらの時間指定リストの両方が空だった場合、クラス内のユーザはいつでもアクセス 可能になります。 times.allow が指定されている場合、ログインは指定された期間のみ許可されます。 もし times.deny が指定されている場合、 times.allow の中で期間が指定されているかどうかに関わらず、指定された期間は ログインできなくなります。

login(1) が強制することは、これらのエントリにより許可された期間内に実際の ログインが行なわれることのみである点に注意して下さい。 セッションの生存期間に関して更なる規制をかけるには、別のデーモンを用意し、 許可されている期間から許可されていない期間への 遷移を監視する必要があります。

ttys.allow ttys.deny エントリは、クラス内のユーザがシステムにアクセスするために使う コンマで区切られた (/dev/ プレフィックスを除く) 端末デバイスと、 端末グループ (ttygroup) のリストです (ttygroup の詳細は getttyent(3)ttys(5) を参照して下さい)。 どちらのエントリも存在しない場合、ユーザが使用するログインデバイスの選択には 制限はありません。 ttys.allow のみ指定されている場合、ユーザの使えるデバイスは指定されたグループ またはデバイスリストのみに制限されます。 ttys.deny のみ指定されている場合、ユーザは指定されたデバイスやデバイス グループを使用できません。 両方が与えられていてかつどちらも空でない場合、ユーザは ttys.allow で指定されていて、ttys.deny では指定されていないデバイス群のみ 使用できます。

minpasswordlen および minpasswordcase の機能は、パスワードの品質制限を強制するためのものです。 login.conf でサポートされていましたが、現在は pam_passwdqc(8) [英語] PAM モジュールにとってかわられました。

予約済ケーパビリティ

下記ケーパビリティは、記述された目的のために予約済であり、 サードパーティソフトウェアによってサポートされているかもしれません。 ベースシステムでは実装されていません。
"名称 解説

"accounted
bool false このクラス内の全ユーザのセッション時間アカウンティングを有効化

"autodelete
time アカウント失効後自動で削除されるまでの時間

"bootfull
bool false セッション終了時の「ttygroup が一杯の場合にのみブート」戦略を有効にする

"daytime
time 1 日あたりのログイン最大時間

"expireperiod
time 期限切れまでの割り当て時間

"graceexpire
time 失効したアカウントの猶予日数

"gracetime
time 追加された、猶予ログイン許可時間

"host.accounted
list ログインセッションがアカウントされるリモートホストワイルドカードのリスト

"host.exempt
list ログインセッションのアカウンティングを免除されたリモートホストワイルドカードのリスト

"idletime
time ログアウトまでの最大アイドル時間

"minpasswordlen
number 6 ローカルパスワード文字列長の最小値

"mixpasswordcase
bool trueすべて小文字のパスワードが入力された場合、 passwd(1) がユーザに警告します

"monthtime
time 月毎の最大ログイン時間

"passwordtime
time 次回パスワード無効日を指定するためにpasswd(1) が使用

"refreshtime
time アカウントのリフレッシュ許可時間

"refreshperiod
str リフレッシュが行なわれる頻度

"sessiontime
time セッション毎の最大ログイン時間

"sessionlimit
number すべてのグループに対する tty 上の同時最大ログイン数

"ttys.accounted
list ログインアカウントが有効な tty と ttygroup のリスト

"ttys.exempt
list ログインアカウントが無効な tty と ttygroup のリスト

"warntime
time 時間切れになりそうな場合に対する事前の注意を行なう時間

"weektime
time 1 週間毎の最大ログイン時間

ttys.accounted ttys.exempt フィールドは、先に述べた ttys.allow ttys.deny と同じような方法で状態を操作します。 host.accounted host.exempt のリストも同様です。

関連項目

cap_mkdb(1), login(1), chroot(2), getcap(3), getttyent(3), login_cap(3), login_class(3), pam(3) [英語], passwd(5), ttys(5), ftpd(8), pam_passwdqc(8) [英語]

LOGIN.CONF (5) August 6, 2004

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.