LOGIN.CONF(5) | FreeBSD File Formats Manual | LOGIN.CONF(5) |
名称
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 つまたは複数の名前で、それらは、'|' 文字で区切られます。その最初の名前が、最も一般化された短縮名称です。最後の名前は、ログインケーパビリティエントリをより分かりやすく説明した長い名前であるべきで、他の名前は、その同義語です。すべての名前は、小文字かつ空白を含まないようにすべきですが、最後の名前は、可読性を考慮して、大文字やブランクを含んでいてもよいでしょう。
コロン (‘ :
’) は、ケーパビリティエントリを分離するために使用されるので、‘ \c
’エスケープシーケンスは、ケーパビリティの値または名前にリテラル (定数) のコロンを埋め込むために使用されなければならないことに注意してください。
FreeBSD と共に出荷されたデフォルトの /etc/login.conf は、難しい設定などは一切なしで使えます。これへの変更、またはユーザの ~/.login_conf ファイルが作られるときは、いつも、 cap_mkdb(1) がデータベースにファイルをコンパイルするために使用されるまで、変更は有効となりません。このデータベースファイルは、 .db 拡張子があり、 cgetent(3) を通してアクセスされます。ケーパビリティデータベースの形式についての詳細な説明は、 getcap(3) を参照してください。
ケーパビリティ
データベース内のそれぞれの行に含まれるフィールドは、 getcap(3) の慣習に従い、ブール型、文字列型‘=
’数値型‘
#
’があります。しかしながら数値データのところは、数値型が拒否され文字列型が受け入れられることがあったり、両方の書式が受け入れられることもあります。値は、次のカテゴリに分類されます。
- 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
- 秒数
特別な 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 | スタックサイズの最大値制限. | |
pseudoterminals | number | 疑似端末の最大数. | |
swapuse | size | 最大のスワップ領域サイズの制限. |
これらのリソース制限エントリは、実際には、最大値と現在の制限値の両方を指定します ( getrlimit(2) を参照してください)。普通は、現在の制限値 (ソフトリミット) が使われますが、ユーザは、現在の制限値を最大制限値 (ハードリミット) まで増やすことが許されています。最大制限値と現在の制限値は、ケーパビリティ名に各々 -max 及び -cur を追加することによって指定できます。
環境
名称 | 型 | 注 | 解説 |
charset | string | $MM_CHARSET 環境変数の明示的な設定値. | |
cpumask | string | ユーザにバインドする cpu のリスト. 構文は, cpuset(1) の -l 引数または単語‘ default ’に対するものと同じです. ‘ default ’に設定されるなら, アクション (行動) を取りません. |
|
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 | string | login(1) が与えるログインプロンプト. | |
login-backoff | number | 3 | この回数のログイン試行がなされた後, 後続する試行に対してバックオフ遅延が追加されます. バックオフ遅延は, この login-backoff に 5 秒を掛けた試みの数です. |
login-retries | number | 10 | ログイン失敗までに可能な, ログイン試行回数. |
passwd_format | string | sha512 | 新規または変更するパスワードが使用する暗号形式. 有効な値は, "des", "md5", "blf", "sha256"と "sha512"です. 詳細については, crypt(3) を参照. NIS クライアントが, FreeBSD ではない NIS サーバを使用する場合, おそらく "des"を使用すべきでしょう. |
passwd_prompt | string | login(1) が表示するパスワードプロンプト. | |
times.allow | list | ログインが許されている時間帯のリスト. | |
times.deny | list | ログインが許されない時間帯のリスト. | |
ttys.allow | list | クラス内のユーザがアクセスに使用できる端末と端末グループのリスト. | |
ttys.deny | list | クラス内のユーザがアクセスに使用不可な端末と端末グループのリスト. | |
warnexpire | time | 失効しそうなアカウントに対する事前の注意を行なう時間. | |
warnpassword | time | 失効しそうなパスワードに対する事前の注意を行なう時間. |
これらのフィールドは、ログイン認証システムの中で passwd(1) や、その他のプログラムから使用される予定です。
環境変数を設定するケーパビリティは、その中の文字‘ ~
’と‘ $
’の両方がスキャンされ、これらは、それぞれユーザのホームディレクトリ及びユーザ名に置換されます。環境変数中にこれらの文字をそのまま含める場合には、その前にバックスラッシュ '\' をつけてエスケープします。
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 | このクラス内の全ユーザのセッション時間アカウンティングを有効化. |
auth | list | passwd | 許可された認証スタイル. 最初の項目は, デフォルトスタイルです. |
auth- type | list | 認証 type のための許可された認証スタイル. | |
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)July 8, 2011 | FreeBSD |