Translation refinements.
Submitted by: Norihiro Kumagai <kuma@nk.rim.or.jp> via horikawa
This commit is contained in:
parent
3b82220ce3
commit
014d67ea83
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=6244
10 changed files with 191 additions and 318 deletions
|
@ -60,11 +60,8 @@
|
|||
引数
|
||||
.Fa filedes
|
||||
は、対象ファイルの記述子です。ファイル記述子は、
|
||||
書き込みのみ
|
||||
(O_WRONLY)
|
||||
、または読み込み / 書き込み両方
|
||||
(O_RDWR) のどちらかで
|
||||
操作できる必要があります。引数
|
||||
書き込みのみ (O_WRONLY)、または読み込み / 書き込み両方
|
||||
(O_RDWR) のどちらかで操作できる必要があります。引数
|
||||
.Fa function
|
||||
は所要動作を定義する制御値です。
|
||||
.Fa Function
|
||||
|
@ -96,7 +93,7 @@
|
|||
は、ロックまたはロック解除対象のバイト数を示しています。
|
||||
ロックまたはロック解除対象のセクションは、ファイル上の現在のオフセットを
|
||||
開始地点とし、前方向であれば正符号の長さで、後ろ方向であれば負の長さで
|
||||
表します。(現在のオフセット値を除く後続する範囲のバイト数)しかし、
|
||||
表します。(現在のオフセット値を除く後続する範囲のバイト数) しかし、
|
||||
ファイルの先頭より前を開始点または対象範囲とすることはできません。
|
||||
.Fa size
|
||||
が
|
||||
|
@ -131,14 +128,14 @@
|
|||
.Pp
|
||||
.Dv F_ULOCK
|
||||
要求は、プロセスで制御される複数のロックされた
|
||||
セクション(全体または一部)を解放します。ロックされたセクションは、現在の
|
||||
セクション (全体または一部) を解放します。ロックされたセクションは、現在の
|
||||
ファイル上の地点から
|
||||
.Fa size
|
||||
で示す長さのバイト数分、またはサイズ指定が
|
||||
0 の場合
|
||||
ファイルの終了位置まで、ロックが解除されます。ロックされたセクション
|
||||
がすべて解放されないとき(すなわち、ロック解除される区域の最初の部分または
|
||||
終りの部分がロックされたセクションにあるとき)、セクションの残りの部分は
|
||||
がすべて解放されないとき (すなわち、ロック解除される区域の最初の部分または
|
||||
終りの部分がロックされたセクションにあるとき)、セクションの残りの部分は
|
||||
プロセスにより引き続きロックされます。ロックされたセクションの中心部分を
|
||||
解放することにより、ロックされた残りの部分は、先頭区域と終りの区域の
|
||||
2 つの
|
||||
|
@ -146,19 +143,13 @@
|
|||
定めた制限値を越える場合、その要求の処理は不成功になります。
|
||||
.Pp
|
||||
.Dv F_ULOCK
|
||||
要求は、サイズ指定が
|
||||
0 でなく、要求されたセクションの最終バイト
|
||||
の位置が、
|
||||
off_t
|
||||
型のオブジェクトに対する最大値を越えない場合、または
|
||||
プロセス内にサイズ
|
||||
0 のロックがあり、要求対象セクションの最終バイトを
|
||||
含んでいる場合、サイズ
|
||||
0 の要求対象セクションの開始位置からロック解除する
|
||||
要求は、サイズ指定が 0 でなく、要求されたセクションの最終バイトの
|
||||
位置が、off_t 型のオブジェクトに対する最大値を越えない場合、
|
||||
またはプロセス内にサイズ 0 のロックがあり、要求対象セクションの最終バイトを
|
||||
含んでいる場合、サイズ 0 の要求対象セクションの開始位置からロック解除する
|
||||
要求として扱われます。そうでない場合、
|
||||
.Dv F_ULOCK
|
||||
要求は、要求対象のセクション
|
||||
だけをロック解除しようとします。
|
||||
要求は、要求対象のセクションだけをロック解除しようとします。
|
||||
.Pp
|
||||
ロックされている区域を制御しているプロセスが、他プロセスでロック
|
||||
されている区域をロックしようとしてスリープ状態になると、デッドロックが
|
||||
|
@ -167,12 +158,12 @@ off_t
|
|||
.Er EDEADLK
|
||||
エラーで異常終了することを検出できます。
|
||||
.Pp
|
||||
.XX lockf ,
|
||||
.Fn lockf ,
|
||||
.Xr fcntl 2
|
||||
および
|
||||
.Xr flock 2
|
||||
によるロックは同時併行で問題なく
|
||||
使用できます。セクションでの防護処理は適当なシグナルで解釈されます。
|
||||
によるロックは同時併行で問題なく使用できます。
|
||||
セクションでの防護処理は適当なシグナルで解釈されます。
|
||||
.Pp
|
||||
.Sh 戻り値
|
||||
正常実行の場合、
|
||||
|
|
|
@ -50,11 +50,10 @@ command line.
|
|||
.Xr utmp 5
|
||||
ファイルの適当なスロットへパスされる
|
||||
.Ar ut
|
||||
エントリを
|
||||
記録し (呼び出しプロセスの制御端末に従って)、それを
|
||||
エントリを記録し (呼び出しプロセスの制御端末に従って)、それを
|
||||
.Xr wtmp 5
|
||||
ファイルへ
|
||||
アペンドします。呼び出しプロセスはどちらのファイルに対しても書き込み権限を
|
||||
ファイルへアペンドします。
|
||||
呼び出しプロセスはどちらのファイルに対しても書き込み権限を
|
||||
持っている必要があります。
|
||||
.Pp
|
||||
.Sh 戻り値
|
||||
|
@ -68,7 +67,7 @@ command line.
|
|||
.Pp
|
||||
.Sh バグ
|
||||
.Fn login
|
||||
は未加工なインターフェスを提供します。呼び出し側は、
|
||||
は未加工なインタフェースを提供します。呼び出し側は、
|
||||
.Va struct utmp
|
||||
の構造について認識している必要があります。もう少し抽象化が
|
||||
必要です。
|
||||
|
|
|
@ -60,8 +60,7 @@
|
|||
.Sh 解説
|
||||
この関数セットは、
|
||||
.Xr login.conf 5
|
||||
が提供するログインクラスの認証形式
|
||||
インターフェスをサポートします。
|
||||
が提供するログインクラスの認証形式インタフェースをサポートします。
|
||||
.Pp
|
||||
.Sh 戻り値
|
||||
.Pp
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
.Nm login_getcapbool ,
|
||||
.Nm login_getstyl
|
||||
.Nd ログインクラスデータベース
|
||||
に対するプログラミングインターフェス
|
||||
に対するプログラミングインタフェース
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <login_cap.h>
|
||||
|
@ -71,56 +71,37 @@
|
|||
これらの関数は
|
||||
.Xr login.conf 5
|
||||
に備わっているログインクラスデータベース
|
||||
に対するプログラミングインターフェスを表します。このデータベースに
|
||||
収録されているのは、
|
||||
CAPABILITIES
|
||||
、属性およびデフォルト環境、ユーザや特殊
|
||||
ユーザとしての稼動中のプログラムに対する課金上の設定などで、
|
||||
に対するプログラミングインタフェースを表します。このデータベースに
|
||||
収録されているのは、CAPABILITIES、属性およびデフォルト環境、
|
||||
ユーザや特殊ユーザとしての稼動中のプログラムに対する課金上の設定などで、
|
||||
.Pa /etc/master.passwd
|
||||
の登録データ内のログインクラスフィールドに
|
||||
定義されています。
|
||||
の登録データ内のログインクラスフィールドに定義されています。
|
||||
.Pp
|
||||
.Xr login.conf 5
|
||||
内のレコードは、コロン
|
||||
.Ql \&:
|
||||
で分離されるフィールドで
|
||||
構成されています。各レコードの最初のフィールドはデータベース全体で一意な
|
||||
レコードのための複数の識別子です。それぞれ
|
||||
\&'|'
|
||||
で分離されており、最後尾に
|
||||
\&'name'
|
||||
識別子が付いていることもあります。レコードの残りのフィールドは
|
||||
keyword/data
|
||||
のペアで構成されます。ロングラインは空のレコード内で
|
||||
バックスラッシュが後ろにつき、次の連続する行は随時読み
|
||||
取られるようになっています。このことは、キーワードが
|
||||
2 つの意味にある文字に
|
||||
限定されないことを除けば
|
||||
レコードのための複数の識別子です。それぞれ '|' で分離されており、
|
||||
最後尾に 'name' 識別子が付いていることもあります。
|
||||
レコードの残りのフィールドは keyword/data のペアで構成されます。
|
||||
ロングラインは空のレコード内でバックスラッシュが後ろにつき、
|
||||
次の連続する行は随時読み取られるようになっています。
|
||||
このことは、キーワードが 2 つの意味にある文字に限定されないことを除けば
|
||||
.Xr termcap 5
|
||||
で使用されている形式と類似しており、
|
||||
読み易すく改善されている点が利点です。
|
||||
termcap
|
||||
レコードの場合と同様に、
|
||||
tc=<recordid>
|
||||
で使用されている形式と類似しており、読み易すく改善されている点が利点です。
|
||||
termcap レコードの場合と同様に、tc=<recordid>
|
||||
が記述されているフィールドによって複数レコードを相互に
|
||||
関連させることができます
|
||||
(レコードが包含関係にあります)。
|
||||
関連させることができます (レコードが包含関係にあります)。
|
||||
.Aq Pa recordid
|
||||
で示されるすべてのレコードは
|
||||
発生した箇所で
|
||||
tc=
|
||||
フィールドにより
|
||||
で示されるすべてのレコードは発生した箇所で tc= フィールドにより
|
||||
置きかえられます。
|
||||
CAPABILITIES
|
||||
データベースの形式と利用方法に関する
|
||||
詳細については、
|
||||
CAPABILITIES データベースの形式と利用方法に関する詳細については、
|
||||
.Xr getcap 3
|
||||
を参照してください。
|
||||
.Pp
|
||||
.Nm login_cap
|
||||
インターフェスには、
|
||||
tc=
|
||||
参照の拡張により、
|
||||
インタフェースには、tc= 参照の拡張により、
|
||||
ログインレコードクラスを取り出す便利な方法が備わっています。
|
||||
プログラム要求により、
|
||||
.Fn login_getclass ,
|
||||
|
@ -128,11 +109,8 @@ tc=
|
|||
.Fn login_getuserclass
|
||||
または
|
||||
.Fn login_getclassbyname
|
||||
のうちどれか
|
||||
1 つを呼び
|
||||
出して実行します。それぞれの関数はログイン
|
||||
CAPABILITIES
|
||||
構造体
|
||||
のうちどれか 1 つを呼び
|
||||
出して実行します。それぞれの関数はログイン CAPABILITIES 構造体
|
||||
.Ft login_cap_t
|
||||
を戻り値として返し、
|
||||
API
|
||||
|
@ -144,10 +122,7 @@ login_cap_t
|
|||
の呼び出しを実行して使用していたリソースをすべて解放する
|
||||
必要があります。
|
||||
.Pp
|
||||
login_cap_t
|
||||
の構造は
|
||||
login_cap.h
|
||||
で次のように定義されます。
|
||||
login_cap_t の構造は login_cap.h で次のように定義されます。
|
||||
.Bd -literal -offset indent
|
||||
typedef struct {
|
||||
char *lc_class;
|
||||
|
@ -169,23 +144,17 @@ typedef struct {
|
|||
を使用したユーザのログインレコード経由で間接的に
|
||||
要求されたものと必ずしも同じではありません。参照されたユーザに
|
||||
/etc/master.passwd
|
||||
で定義されたログインクラスがない場合、クラス名は
|
||||
NULL
|
||||
で定義されたログインクラスがない場合、クラス名は NULL
|
||||
か空ストリングです。
|
||||
また、定義されたクラスがデータベースに存在しない場合、
|
||||
各関数は、
|
||||
\&'default'
|
||||
という
|
||||
ID
|
||||
のレコードを探索し、
|
||||
各関数は、'default' という ID のレコードを探索し、
|
||||
.Ar lc_class
|
||||
フィールドにその
|
||||
名前を戻り値として取得します。
|
||||
フィールドにその名前を戻り値として取得します。
|
||||
.Pp
|
||||
.Ar lc_cap
|
||||
フィールドは、ライブラリで内部的に使用され、拡張されたログイン
|
||||
CAPABILITIES
|
||||
レコードを保持します。プログラムからの例外要求では、低次の
|
||||
フィールドは、ライブラリで内部的に使用され、
|
||||
拡張されたログイン CAPABILITIES レコードを保持します。
|
||||
プログラムからの例外要求では、低次の
|
||||
.Fn getcap
|
||||
方式の関数とともにレコードを直接アクセスしようとしてこれを
|
||||
使用する傾向があります。
|
||||
|
@ -198,77 +167,53 @@ CAPABILITIES
|
|||
.Pp
|
||||
前述したように、関数
|
||||
.Fn get*class
|
||||
は、
|
||||
CAPABILITIES
|
||||
データベースの
|
||||
マッチングまたはデフォルトレコードのアクセスに使用される
|
||||
login_cap_t
|
||||
オブジェクトを戻り値として返します。
|
||||
は、CAPABILITIES データベースのマッチング
|
||||
またはデフォルトレコードのアクセスに使用される login_cap_t オブジェクトを
|
||||
戻り値として返します。
|
||||
.Fn getclassbyname
|
||||
は
|
||||
2 つの引数を受け
|
||||
取ります。最初のものは取り出し対象レコードのレコード識別子で、
|
||||
は 2 つの引数を受け取ります。
|
||||
最初のものは取り出し対象レコードのレコード識別子で、
|
||||
2 番めのものは、任意指定のディレクトリ名です。最初の引数
|
||||
.Ar name
|
||||
が
|
||||
NULL
|
||||
か、空ストリング、
|
||||
が NULL か、空ストリング、
|
||||
あるいは補助的なまたはシステムのログインクラスデータベースに
|
||||
クラスが存在しない場合、システム
|
||||
.Em デフォルト
|
||||
レコードが代わりに
|
||||
返されてきます。
|
||||
レコードが代わりに返されてきます。
|
||||
2 番めの引数
|
||||
.Ar dir
|
||||
パラメータが
|
||||
NULL
|
||||
のとき、
|
||||
パラメータが NULL のとき、
|
||||
システムログインクラスデータベースだけが使用されますが、
|
||||
NULL
|
||||
でないときは、
|
||||
NULL でないときは、
|
||||
.Xr .login_conf 5
|
||||
というファイル内で名前付きディレクトリが検索され、中にある
|
||||
CAPABILITIES
|
||||
レコードがシステムデフォルトを上書きします。この体系により
|
||||
ユーザは、
|
||||
\&'me'
|
||||
という
|
||||
ID
|
||||
のレコードがあるプライベートクラスに対する
|
||||
クラスレコードを生成して、システムログインクラス・データベースのレコード
|
||||
CAPABILITIES レコードがシステムデフォルトを上書きします。
|
||||
この体系によりユーザは、'me' という IDのレコードがある
|
||||
プライベートクラスに対するクラスレコードを生成して、
|
||||
システムログインクラス・データベースのレコード
|
||||
におけるログイン設定値を上書きできます。
|
||||
Login
|
||||
のコンテキストでは、次の
|
||||
2 つの理由により、ユーザが上書きできないオプションがあります。第
|
||||
1 に、
|
||||
リソース設定値やデフォルトのプロセス優先順位などの多くのオプションでは、
|
||||
効果を発揮させるためにルート権限が必要である
|
||||
こと、第
|
||||
2 に、
|
||||
ユーザファイルの他のフィールドは、ログインの初期段階ではセキュリティや
|
||||
管理上の理由から、十分な検討が行われていません。どの設定がユーザが
|
||||
Login のコンテキストでは、次の 2 つの理由により、
|
||||
ユーザが上書きできないオプションがあります。
|
||||
第 1 に、リソース設定値やデフォルトのプロセス優先順位などの
|
||||
多くのオプションでは、効果を発揮させるためにルート権限が必要であること、
|
||||
第 2 に、ユーザファイルの他のフィールドは、
|
||||
ログインの初期段階ではセキュリティや管理上の理由から、
|
||||
十分な検討が行われていません。どの設定がユーザが
|
||||
上書きできるのかについての詳細については、
|
||||
.Xr login.conf 5
|
||||
を
|
||||
参照してください。実際には、これらは、そうでない場合に常に初期起動
|
||||
シエルスクリプトで上書きされるユーザのデフォルトログイン環境によって明確に
|
||||
制限されます。ユーザの
|
||||
を参照してください。実際には、これらは、そうでない場合に常に
|
||||
初期起動シエルスクリプトで上書きされるユーザのデフォルトログイン環境に
|
||||
よって明確に制限されます。ユーザの
|
||||
.Pa .login_conf
|
||||
は、ログイン時、シエルが呼ばれる前に
|
||||
実行される優先ログイン環境設定での簡便な方法をユーザ
|
||||
に提供します。
|
||||
実行される優先ログイン環境設定での簡便な方法をユーザに提供します。
|
||||
.Pp
|
||||
指定レコードが
|
||||
NULL
|
||||
か、空または存在しないとき、さらに不測の事態に
|
||||
指定レコードが NULL か、空または存在しないとき、さらに不測の事態に
|
||||
備えてデフォルトレコードがシステムにない場合、メモリアロケーションエラー
|
||||
になるか、あるいは
|
||||
.Xr cgetent 3
|
||||
が何らかの理由によりログイン
|
||||
CAPABILITIES
|
||||
データベースにアクセスできなくなり、
|
||||
NULL
|
||||
を返してきます。
|
||||
が何らかの理由によりログイン CAPABILITIES データベースに
|
||||
アクセスできなくなり、NULL を返してきます。
|
||||
.Pp
|
||||
関数
|
||||
.Fn login_getpwclass ,
|
||||
|
@ -278,143 +223,105 @@ NULL
|
|||
で、ユーザパスワード登録情報に対応するログインクラスレコードの取り出し、
|
||||
.Fn login_getclassbyname
|
||||
呼び出しによるクラス名の取り出しができます。
|
||||
処理が失敗した場合は
|
||||
NULL
|
||||
が返されます。これらの関数の間で、
|
||||
処理が失敗した場合は NULL が返されます。これらの関数の間で、
|
||||
.Fn login_getuserclass
|
||||
はユーザによる上書きが可能なユーザホームディレクトリ上の
|
||||
.login_conf
|
||||
はユーザによる上書きが可能なユーザホームディレクトリ上の .login_conf
|
||||
を含んでいますが、
|
||||
.Fn login_getpwclass
|
||||
および
|
||||
.Fn login_getclass
|
||||
では、それへの参照を
|
||||
.Pa /etc/login.conf
|
||||
上のシステムログインクラスに制限している点で
|
||||
異なります。
|
||||
上のシステムログインクラスに制限している点で異なります。
|
||||
.Fn login_getpwclass
|
||||
が
|
||||
.Fn login_getclass
|
||||
と異なる唯一の点は、
|
||||
パスワードデータベースでの定義がないときにユーザルートをシステムルート
|
||||
として認めていることです。他方、パスワードのポインタが
|
||||
NULL
|
||||
のとき、または
|
||||
ユーザレコードにログインクラスがない場合、システムの「デフォルト」登録
|
||||
レコードの取得が行われます。
|
||||
と異なる唯一の点は、パスワードデータベースでの定義がないときに
|
||||
ユーザルートをシステムルートとして認めていることです。
|
||||
他方、パスワードのポインタが NULL のとき、
|
||||
またはユーザレコードにログインクラスがない場合、
|
||||
システムの「デフォルト」登録レコードの取得が行われます。
|
||||
.Pp
|
||||
プログラムで
|
||||
login_cap_t
|
||||
オブジェクトを使用する必要がなくなると、
|
||||
プログラムで login_cap_t オブジェクトを使用する必要がなくなると、
|
||||
.Fn login_close
|
||||
呼び出しを実行し、ログインクラスで使用していたリソースを
|
||||
解放します。
|
||||
呼び出しを実行し、ログインクラスで使用していたリソースを解放します。
|
||||
.Fn login_close
|
||||
は
|
||||
NULL
|
||||
ポインタを返しますが、これには
|
||||
弊害はありません。
|
||||
は NULL ポインタを返しますが、これには弊害はありません。
|
||||
.Pp
|
||||
残りの関数は、個別の権限レコードの取り出しに使用されます。各関数は、
|
||||
login_cap_t
|
||||
オブジェクトを第
|
||||
1 引数とし、
|
||||
CAPABILITIES
|
||||
タグ
|
||||
を第
|
||||
2 引数とします。残りのパラメータは、
|
||||
CAPABILITIES
|
||||
レコードが見つからないときの
|
||||
デフォルトまたはエラー値を指定します。受け渡しされるパラメータの型は
|
||||
関連する
|
||||
CAPABILITIES
|
||||
のタイプによって変わってきます。たとえば、
|
||||
ストリング、リスト、時間値、ファイルやメモリサイズ、パス (コロンで
|
||||
分離されたデイレクトリリストから構成される)、またはバイナリ値フラグ
|
||||
などです。
|
||||
login_cap_t オブジェクトを第 1 引数とし、
|
||||
CAPABILITIES タグを第 2 引数とします。残りのパラメータは、
|
||||
CAPABILITIES レコードが見つからないときの
|
||||
デフォルトまたはエラー値を指定します。
|
||||
受け渡されるパラメータの型は関連する CAPABILITIES のタイプによって
|
||||
変わってきます。
|
||||
たとえば、ストリング、リスト、時間値、ファイルやメモリサイズ、
|
||||
パス (コロンで分離されたデイレクトリリストから構成される)、
|
||||
またはバイナリ値フラグなどです。
|
||||
.Pp
|
||||
このグループのすべての関数では、ポインタを返すとき
|
||||
.Xr free 3
|
||||
呼出を使用できないことに注意してください。検索や
|
||||
CAPABILITIES
|
||||
タグ処理の間に
|
||||
割り当てられたメモリは、後続するこのグループの関数呼び出しで自動的に
|
||||
再利用されるか、または
|
||||
呼出を使用できないことに注意してください。
|
||||
検索や CAPABILITIES タグ処理の間に割り当てられたメモリは、
|
||||
後続するこのグループの関数呼び出しで自動的に再利用されるか、
|
||||
または
|
||||
.Fn login_close
|
||||
呼び出しで解除されます。
|
||||
.Bl -tag -width "login_gatcaplist()"
|
||||
.Fn login_getcapstr
|
||||
この関数は、単純ストリング
|
||||
CAPABILITIES
|
||||
を返します。
|
||||
この関数は、単純ストリング CAPABILITIES を返します。
|
||||
ストリングが見つからないとき、
|
||||
.Ar def
|
||||
内の定義値がデフォルト値として
|
||||
返されます。エラーが発生したとき、
|
||||
内の定義値がデフォルト値として返されます。エラーが発生したとき、
|
||||
.Ar error
|
||||
パラメータの値が返されます。
|
||||
.Pp
|
||||
.It Fn login_getcaplist
|
||||
本関数は、名前付き
|
||||
CAPABILITY
|
||||
タグの値を
|
||||
NULL
|
||||
で
|
||||
この関数は、名前付き CAPABILITY タグの値を NULL で
|
||||
終了する配列の値リストとして返します。ログインクラスデータベースには、
|
||||
リストタイプのタグがあり、複数のカンマまたはスペースで分離した値で
|
||||
構成されています。通常、この関数は直接アプリケーションから呼び
|
||||
出されることはなく、
|
||||
構成されています。通常、この関数は直接アプリケーションから
|
||||
呼び出されることはなく、
|
||||
.Fn login_getstyle
|
||||
経由で間接的に使用されます。
|
||||
.Pp
|
||||
.It Fn login_getpath
|
||||
この関数は、
|
||||
.Ql &:
|
||||
で分離されたディレクトリリストを
|
||||
返します。
|
||||
この関数の呼出しが実行される
|
||||
CAPABILITY
|
||||
タグ
|
||||
はスペースで分離された
|
||||
この関数は、コロン
|
||||
.Ql \&:
|
||||
で分離されたディレクトリリストを返します。
|
||||
この関数の呼出しが実行される CAPABILITY タグはスペースで分離された
|
||||
デイレクトリリストで構成されます。
|
||||
.Pp
|
||||
.It Fn login_getcaptime
|
||||
この関数は、時、分、秒 (デフォルト)、年 (
|
||||
365 日基準)、週、あるいはこれらの任意の組み合わせで表される値の特殊な
|
||||
CAPABILITY
|
||||
タグに関連する時間値を返します。接尾語により使用される単位を
|
||||
決定します。
|
||||
S は秒を、M は分を、H は時を、D は日を、W は週を表し、Y は
|
||||
365 日基準による年を表します。
|
||||
この関数は、時、分、秒 (デフォルト)、年 (365 日基準)、週、
|
||||
あるいはこれらの任意の組み合わせで表される値の特殊な
|
||||
CAPABILITY タグに関連する時間値を返します。
|
||||
接尾語により使用される単位を決定します。
|
||||
S は秒を、M は分を、H は時を、D は日を、W は週を表し、
|
||||
Y は 365 日基準による年を表します。
|
||||
単位接尾語では大文字、小文字の区別はありません。
|
||||
.Pp
|
||||
時間値は、通常はリソースの設定値、課金システム、およびセッション制限値に
|
||||
使用されます。オペレーティングシステムやコンパイラ (FreeBSD 対応) で
|
||||
サポートしている場合、戻り値は 2 次元 (long long) の
|
||||
.Em rlim_t
|
||||
型になります。値 'inf' または 'infinity' で無限の値を表せます。
|
||||
その場合
|
||||
RLIM_INFINITY
|
||||
が
|
||||
戻り値となります。
|
||||
型になります。値 "inf" または "infinity" で無限の値を表せます。
|
||||
その場合 RLIM_INFINITY が戻り値となります。
|
||||
.Pp
|
||||
.It Fn login_getcapnum
|
||||
この関数は、タグに関する数値を返します。数値は、
|
||||
tag=<value> または標準的な
|
||||
.Fn cgetnum
|
||||
書式 tag#<value>
|
||||
で表現されます。
|
||||
書式 tag#<value> で表現されます。
|
||||
最初の書式は 2 番目のものより優先的に使用されます。
|
||||
2 番めの書式は、
|
||||
.Xr getcap 3
|
||||
データベースの書式との互換性と整合性があり、数値タイプの場合、
|
||||
数値のデリミタとして
|
||||
.Ql \&#
|
||||
が使われます。最初の書式の場合、指定される値は
|
||||
\&'inf' または 'infinity' で、戻り値は RLIM_INFINITY
|
||||
になります。指定された
|
||||
CAPABILITY
|
||||
タグを見つけることができない場合、
|
||||
が使われます。最初の書式の場合、指定される値は "inf"
|
||||
または "infinity" で、戻り値は RLIM_INFINITY になります。
|
||||
指定された CAPABILITY タグを見つけることができない場合、
|
||||
.Ar def
|
||||
パラメータが返されます。
|
||||
エラーが起きると、
|
||||
|
@ -423,78 +330,60 @@ CAPABILITY
|
|||
.Pp
|
||||
.It Fn login_getcapsize
|
||||
.Fn login_getcapsize
|
||||
は、サイズ(ファイルまたは
|
||||
メモリの場合)を表す値を、バイト数(デフォルト)、
|
||||
512 バイトのブロック数、
|
||||
KB,
|
||||
MB,
|
||||
GB
|
||||
は、サイズ(ファイルまたはメモリの場合)を表す値を、
|
||||
バイト数(デフォルト)、512 バイトのブロック数、
|
||||
KB,MB,GB
|
||||
表示で返します。また
|
||||
.Ar long long
|
||||
タイプをサポートしているシステム
|
||||
であれば、
|
||||
TB
|
||||
表示もあります。使用されている接尾語により単位、複合値を
|
||||
タイプをサポートしているシステムであれば、
|
||||
TB 表示もあります。使用されている接尾語により単位、複合値を
|
||||
決定し、単位は組み合せた形で使用されます。(例えば、
|
||||
1m500k = 1.5megabytes) 接尾語がない値 A はバイトを、
|
||||
B は 512 バイトブロックを、
|
||||
K は KB を、
|
||||
M は MB を、
|
||||
G は GB を、
|
||||
そして
|
||||
T
|
||||
は TB を表します。
|
||||
大文字と小文字の区別はありません。エラー値が返ってくるのは、ログイン
|
||||
CAPABILITIES
|
||||
データベースエラーがあるか、間違った接尾語が使用されているか、
|
||||
または数値が変換ができない場合です。
|
||||
K は kilobyte を、
|
||||
M は megabyte を、
|
||||
G は gigabyte を、
|
||||
そして T は terrabyte を表します。
|
||||
大文字と小文字の区別はありません。エラー値が返ってくるのは、
|
||||
ログイン CAPABILITIES データベースエラーがあるか、
|
||||
間違った接尾語が使用されているか、または数値が変換ができない場合です。
|
||||
.Pp
|
||||
.It Fn login_getcapbool
|
||||
この関数は、特定のフラグに関連したバイナリ値を、返します。指定された
|
||||
CAPABILITY
|
||||
タグがないか、
|
||||
\&'tag@'(boolean フラグの詳細については
|
||||
この関数は、特定のフラグに関連したバイナリ値を返します。
|
||||
指定された CAPABILITY タグがないか、
|
||||
"tag@" (boolean フラグの詳細については
|
||||
.Xr getcap 3
|
||||
を参照) により無効にされているとき、
|
||||
0 が返ってきます。タグが見つかれば
|
||||
1 が返ります。
|
||||
を参照) により無効にされているとき、0 が返ってきます。
|
||||
タグが見つかれば 1 が返ります。
|
||||
.Pp
|
||||
.It Fn login_getstyle
|
||||
この関数は、ログイン認可システムで使用され、特定の
|
||||
ケースで有効なログインの形式を決定します。関数は、
|
||||
3 つのパラメータと、
|
||||
ケースで有効なログインの形式を決定します。
|
||||
関数は、3 つのパラメータと、
|
||||
.Nm login_cap
|
||||
登録レコードそのもの、および 2 つの任意指定パラメータ、
|
||||
\&'auth'
|
||||
と
|
||||
\&'style'
|
||||
の認可タイプを受け取り、これらを用いてこれらのルールと矛盾しない
|
||||
認可スタイルを決定します。
|
||||
登録レコードそのもの、および 2 つの任意指定パラメータ、'auth'
|
||||
と 'style' の認可タイプを受け取り、
|
||||
これらを用いてこれらのルールと矛盾しない認可スタイルを決定します。
|
||||
.Pp
|
||||
.Bl -bullet -indent offset
|
||||
.It
|
||||
\&'auth' が NULL または 空ストリングでなければ、
|
||||
CAPABILITY
|
||||
レコードの
|
||||
\&'auth-<auth>'
|
||||
タイプのタグの検索を行います。存在しなければ、デフォルトの
|
||||
デフォルトタグ
|
||||
\&'auth='
|
||||
を検索します。
|
||||
.Ql auth
|
||||
が NULL または 空ストリングでなければ、CAPABILITY レコードの
|
||||
"auth-<auth>" タイプのタグの検索を行います。
|
||||
存在しなければ、デフォルトのデフォルトタグ "auth=" を検索します。
|
||||
.It
|
||||
先のステップで正当な認可リストが見つからない場合、
|
||||
\&'passwd'
|
||||
先のステップで正当な認可リストが見つからない場合、"passwd"
|
||||
がデフォルトの認可リストとされます。
|
||||
.It
|
||||
\&'style' が NULL でも
|
||||
空でもないとき、先行ステップで見つかった認可方式の
|
||||
.Ql style
|
||||
が NULL でも空でもないとき、先行ステップで見つかった認可方式の
|
||||
リストからそれを検索します。
|
||||
.It
|
||||
\&'style' が NULLか空ストリングのとき、
|
||||
\&'passwd'
|
||||
をデフォルトの認可に使用します。
|
||||
.Ql style
|
||||
が NULLか空ストリングのとき、"passwd"をデフォルトの認可に使用します。
|
||||
.It
|
||||
\&'style' が、認可方式の選択リストに見つかった場合、それを返し、
|
||||
.Ql style
|
||||
が、認可方式の選択リストに見つかった場合、それを返し、
|
||||
そうでないときは NULL を返します。
|
||||
.El
|
||||
.Pp
|
||||
|
@ -502,7 +391,7 @@ CAPABILITY
|
|||
認可方式を決定します。たとえば、管理者がネットワークを経由したシステムへの
|
||||
アクセスに使用された認証方式として、skey または kerberos を要求します。
|
||||
また、直接のダイアルアップまたはコンソールログイン経由での標準的方式を
|
||||
要求することもあり、'snooping' ネットワークパケットによりパスワードが
|
||||
要求することもあり、"snooping" ネットワークパケットによりパスワードが
|
||||
発見されるリスクを著しく減少させられます。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
.Sh 解説
|
||||
これらの関数は、ログインクラスデータベース関して
|
||||
.Xr login_cap 3
|
||||
のマニュアルに記載されているインターフェスより高次のインターフェスを
|
||||
のマニュアルに記載されているインタフェースより高次のインタフェースを
|
||||
提供します。これらの関数が使用されるのは、リソースに関する限界値や、
|
||||
環境およびシステムにログインするユーザへの課金の設定、およびログインクラス
|
||||
に基づくシステムデーモンの設定と環境の適切な組を設定するときです。これらの
|
||||
|
@ -61,7 +61,7 @@
|
|||
.Pp
|
||||
.Fn setusercontext
|
||||
は、指定された login_cap_t オブジェクト、
|
||||
指定された passwd レコード ( login_cap_t が nullの場合)
|
||||
指定された passwd レコード (login_cap_t が nullの場合)
|
||||
に基づく、クラスのコンテキストバリューを設定します。
|
||||
また最新のセッションへのログインや、
|
||||
最新のプロセスのユーザおよびグループの所有者を設定します。
|
||||
|
@ -96,8 +96,9 @@ passwd
|
|||
NULL 以外の値を指定する必要があります。
|
||||
.It LOGIN_SETRESOURCES
|
||||
システムのログインクラスデータベースで定義される
|
||||
設定値に基づき現在のプロセスのリソースの限界値を設定します。クラス権限タグ
|
||||
は、-cur (ソフトリミット) または -max (ハードリミット)の接尾語と次に示す
|
||||
設定値に基づき現在のプロセスのリソースの限界値を設定します。
|
||||
クラス権限タグは、-cur (ソフトリミット)
|
||||
または -max (ハードリミット) の接尾語と次に示す
|
||||
リソース設定子を適切に組み合わせて使用します。
|
||||
.Bd -literal
|
||||
cputime RLIMIT_CPU
|
||||
|
@ -125,10 +126,9 @@ Priority
|
|||
umask
|
||||
.Ed
|
||||
.It LOGIN_SETPATH
|
||||
ユーザまたはシステムのログインクラスデータベースに基づく値を
|
||||
\&'path' および 'manpath'
|
||||
環境変数に設定します。該当する環境変数
|
||||
セットとともに使用されるクラス権限タグは次のとおりです。
|
||||
ユーザまたはシステムのログインクラスデータベースに基づく
|
||||
値を "path" および "manpath" 環境変数に設定します。
|
||||
該当する環境変数セットとともに使用されるクラス権限タグは次のとおりです。
|
||||
.Bd -literal
|
||||
path PATH
|
||||
manpath MANPATH
|
||||
|
@ -145,7 +145,7 @@ term TERM
|
|||
.Ed
|
||||
.Pd
|
||||
環境変数の追加として、リスト型の
|
||||
権限設定 'setenv=var1 val1,var2 val2..,varN valN '
|
||||
権限設定 "setenv=var1 val1,var2 val2..,varN valN "
|
||||
を使用できます。
|
||||
.It LOGIN_SETALL
|
||||
上記の設定をすべて可能にします。
|
||||
|
@ -162,10 +162,10 @@ term TERM
|
|||
.Pp
|
||||
関数
|
||||
.Fn setclassresources
|
||||
および
|
||||
と
|
||||
.Fn setclassenvironment
|
||||
は、上記コンテキスト設定の関数の
|
||||
サブセットですが、単独でも使用できます。
|
||||
は、上記コンテキスト設定の関数のサブセットですが、
|
||||
単独でも使用できます。
|
||||
.Sh 戻り値
|
||||
.Fn setclasscontext
|
||||
および
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
.Em ttys.allow
|
||||
アクセスリストに載っており、
|
||||
.Em ttys.deny
|
||||
アクセスリストに載っていないこともチエックします。
|
||||
アクセスリストに載っていないこともチェックします。
|
||||
.Ar tty
|
||||
デバイス経由でくるログインは、
|
||||
.Em ttys.allow
|
||||
|
@ -61,9 +61,9 @@
|
|||
.Em ttys.deny
|
||||
リストが存在しない限り、またはデバイスあるいは
|
||||
.Ar tty
|
||||
グループ(
|
||||
グループ (
|
||||
.Xr ttys 5
|
||||
を参照のこと)がリストに載っていなければ、受入れられます。
|
||||
を参照のこと) がリストに載っていなければ、受け入れられます。
|
||||
.Ar tty
|
||||
に対するアクセスは、
|
||||
.Ar tty
|
||||
|
@ -77,7 +77,7 @@ ttys
|
|||
.Dv NULL
|
||||
または文字列を
|
||||
.Ar tty parameter
|
||||
として渡すと、関数はゼロでない数値を返します。
|
||||
として渡すと、関数は 0 でない数値を返します。
|
||||
.Pp
|
||||
.Fn auth_hostok
|
||||
は、リモートロングインにおけるホスト側の制約をチエック
|
||||
|
@ -88,15 +88,16 @@ ttys
|
|||
のログインクラスの権限レベルに対し、ホスト名や IP アドレス
|
||||
(具体的には n.n.n.n のようなテキスト形式で指定されます。)
|
||||
の両方のチエックを行います。
|
||||
ttys およびそのグループについてと同様、許可、
|
||||
非許可権限レコード内でワイルドカードや文字
|
||||
クラスを使用できます。関数
|
||||
ttys およびそのグループについてと同様、許可、非許可権限レコード内で
|
||||
ワイルドカードや文字クラスを使用できます。
|
||||
関数
|
||||
.Xr fnmatch 3
|
||||
は対応付けに使用されます。ホスト名の
|
||||
対応付けは大文字か小文字かによります。この関数ではホスト名が完全形式で
|
||||
記述 (たとえば、必要ならばローカルドメイン名が追加される) されている
|
||||
必要があることに注意する必要があります。さらに、IP アドレスは標準的な
|
||||
形式になっています。ホスト名やアドレス参照は行われません。
|
||||
は対応付けに使用されます。
|
||||
ホスト名の対応付けは大文字か小文字かによります。
|
||||
この関数ではホスト名が完全形式で記述 (たとえば、必要ならば
|
||||
ローカルドメイン名が追加される) されている必要があることに
|
||||
注意する必要があります。さらに、IP アドレスは標準的な形式に
|
||||
なっています。ホスト名やアドレス参照は行われません。
|
||||
.Pp
|
||||
この関数の呼び出しは、ホスト名を使用するか、または IP アドレスを
|
||||
指定せず (例えば
|
||||
|
@ -104,9 +105,8 @@ ttys
|
|||
指定) に実行できます。またマッチングはパラメータが
|
||||
指定されなければ実行されません。どちらのパラメータについて
|
||||
.Dv NULL
|
||||
か空の文字列が渡された場合、ゼロ以外の戻り値が返されます。
|
||||
か空の文字列が渡された場合、0 以外の戻り値が返されます。
|
||||
.Pp
|
||||
関数
|
||||
.Fn auth_timeok
|
||||
は、指定の時間値が、ログインクラス
|
||||
.Em times.allow
|
||||
|
@ -124,8 +124,8 @@ ttys
|
|||
.Xr login_times 3
|
||||
のマニュアルページを参照してください。
|
||||
.Sh 戻り値
|
||||
これらの関数からの戻り値がゼロでない場合、ログインが認可されています。
|
||||
戻り値がゼロの場合は、対象が
|
||||
これらの関数からの戻り値が 0 でない場合、ログインが認可されています。
|
||||
戻り値が 0 の場合は、対象が
|
||||
.Em allow
|
||||
アクセスリストにないか
|
||||
.Em deny
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
.Nm parse_lt
|
||||
.Nm in_ltm
|
||||
.Nm in_ltms
|
||||
.Nd ログイン時間帯のチエックおよび解析を行う関数
|
||||
.Nd ログイン時間帯のチェックと解析を行う関数
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <time.h>
|
||||
|
@ -48,20 +48,16 @@
|
|||
と
|
||||
.Ar times.deny
|
||||
権限フィールドで定義された許可、非許可セッション時間の形式は、
|
||||
1
|
||||
桁または
|
||||
2 ,3
|
||||
桁以上の文字の日付コードを定義する接頭語で構成されます。
|
||||
1 桁または 2 ,3 桁以上の文字の日付コードを定義する接頭語で構成されます。
|
||||
ハイフンで分離される 24 時形式の開始、終了時間がそれに続きます。
|
||||
日付コードは、特定の日付を選択するために接合されるか、または
|
||||
\&'Any' や 'All'(任意の曜日またはすべての曜日) や、
|
||||
曜日指定 (土曜日と日曜日を含む) のための 'Wk'、
|
||||
週末を表す 'Wd'
|
||||
"Any" や "All"(任意の曜日またはすべての曜日) や、
|
||||
曜日指定 (土曜日と日曜日を含む) のための "Wk"、週末を表す "Wd"
|
||||
などの、特殊な表記記号も使用することができます。
|
||||
.Pp
|
||||
時間帯はたとえば次のとおりです。
|
||||
.Dl MoThFrSa1400-2200
|
||||
これは、月曜日、木曜日、kinn曜日、土曜日の午後 2 時から
|
||||
これは、月、木、金、土曜日の午後 2 時から
|
||||
10 時の間と解釈されます。
|
||||
.Dl Wd0600-1800
|
||||
これは、土曜日と日曜日の午前 6 時から午後 6 時までの意味です。
|
||||
|
@ -110,8 +106,7 @@ typedef struct login_time
|
|||
.Ar login_time_t
|
||||
を返した場合、構文解析エラーがあります。
|
||||
.Pp
|
||||
残りの関数により、指定された
|
||||
time_t
|
||||
残りの関数により、指定された time_t
|
||||
または特別な時間帯または時間帯の配列に対する構造体 tm をテストできます。
|
||||
.Fn in_ltm
|
||||
により、第 2 パラメータとして渡された構造体 tm で指定された時間が第
|
||||
|
@ -144,7 +139,7 @@ time_t
|
|||
.Pp
|
||||
.Fn in_ltm
|
||||
は、指定された時間が第一パラメータとして渡された login_time_t
|
||||
で定義した時間帯内にあれば、ゼロ以外の値を返します。
|
||||
で定義した時間帯内にあれば、0 以外の値を返します。
|
||||
.Pp
|
||||
.Fn in_ltms
|
||||
は、指定された時間が適合する最初の時間帯のインデックスを
|
||||
|
|
|
@ -46,13 +46,13 @@ command line.
|
|||
.Fn login_tty
|
||||
は、新規ログインセッションの端末を準備します。
|
||||
.Fn login_tty
|
||||
に渡されたファイル指示子
|
||||
に渡されたファイル記述子
|
||||
.Ar fd
|
||||
は端末デバイス上で、読み込みや書き込みが可能である必要があります。
|
||||
.Xr setsid 2
|
||||
により新規セッションが割り当てられた後、
|
||||
呼び出しプロセスの制御デバイスが作られます。この端末デバイスは更に、
|
||||
呼び出しプロセスでの標準入力や出力、及び標準エラー出力になります。
|
||||
呼び出しプロセスでの標準入力や標準出力、および標準エラー出力になります。
|
||||
.Sh 戻り値
|
||||
.Fn Login_tty
|
||||
は、呼び出しプロセスの制御デバイス
|
||||
|
|
|
@ -52,7 +52,7 @@ command line.
|
|||
ファイルを探索します。スロットがみつからない場合は、
|
||||
.Em name
|
||||
及び
|
||||
hos
|
||||
.Em host
|
||||
フィールドが空のレコードで更新され、
|
||||
タイムスタンプは最新時間に更新されます。
|
||||
.Sh 戻り値
|
||||
|
@ -68,6 +68,6 @@ hos
|
|||
.Xr wtmp 5
|
||||
.Sh バグ
|
||||
.Fn logout
|
||||
の呼び出しインターフェスは
|
||||
の呼び出しインタフェースは
|
||||
.Xr login 3
|
||||
のインタフェースと整合性がとれていません。
|
||||
|
|
|
@ -59,7 +59,7 @@ command line.
|
|||
.Xr wtmp 5
|
||||
ファイルのホスト名フィールドと合わない場合、最初は、
|
||||
.Xr gethostbyname 3
|
||||
により数値のIPアドレスに変換しようとします。
|
||||
により数値の IP アドレスに変換しようとします。
|
||||
これに失敗した場合、ホスト名は
|
||||
.Qq invalid hostname
|
||||
(不正ホスト名) として記録されます。
|
||||
|
|
Loading…
Reference in a new issue