.\" Copyright (c) 1995 David Nugent .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, is permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice immediately at the beginning of the file, without modification, .\" this list of conditions, and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. This work was done expressly for inclusion into FreeBSD. Other use .\" is permitted provided this notation is included. .\" 4. Absolutely no warranty of function or purpose is made by the author .\" David Nugent. .\" 5. Modifications may be freely made to this file providing the above .\" conditions are met. .\" .\" %Id: login_class.3,v 1.6 1998/06/06 05:50:43 jkoshy Exp % .\" .\" $FreeBSD$ .Dd December 28, 1996 .Os FreeBSD .Dt LOGIN_CLASS 3 .Sh 名称 .Nm setclasscontext , .Nm setusercontext , .Nm setclassresources , .Nm setclassenvironment .Nd ログインクラスデータベースにアクセスする能力をもつ関数群 .Sh 書式 .Fd #include .Fd #include .Ft int .Fn setclasscontext "const char *classname" "unsigned int flags" .Ft int .Fn setusercontext "login_cap_t *lc" "const struct passwd *pwd" "uid_t uid" "unsigned int flags" .Ft void .Fn setclassresources "login_cap_t *lc" .Ft void .Fn setclassenvironment "login_cap_t *lc" "const struct passwd *pwd" "int paths" .Pp .Sh 解説 これらの関数は、ログインクラスデータベース関して .Xr login_cap 3 のマニュアルに記載されているインタフェースより高次のインタフェースを 提供します。これらの関数が使用されるのは、リソースに関する限界値や、 環境およびシステムにログインするユーザへの課金の設定、およびログインクラス に基づくシステムデーモンの設定と環境の適切な組を設定するときです。これらの 関数呼び出しは、現在のプロセスがルート権限で実行されているときだけ 可能です。LOGIN_SETLOGIN フラグが使用される場合、この関数は .Xr setlogin 2 の呼び出しを実行し、当該関数についてはマニュアルページに説明してある注意を 払う必要があります。これは同一のセッションで実行されているすべてのプロセス に影響をあたえますが、現在のプロセスが影響を受けることはありません。 .Pp .Fn setclasscontext は、種々の、指定された名前付クラスの値に基づくクラス のコンテキスト値 (リソースの限界値、umask やプロセスの優先順位) を 設定します。 .Pp .Fn setusercontext は、指定された login_cap_t オブジェクト、 指定された passwd レコード (login_cap_t が nullの場合) に基づく、クラスのコンテキストバリューを設定します。 また最新のセッションへのログインや、 最新のプロセスのユーザおよびグループの所有者を設定します。 これらの関数は、それぞれ .Ar flags パラメタで渡されたビットフラグにより選択でき、次に示す中の 複数のものから構成されます。 .Bl -tag -width LOGIN_SETRESOURCES .It LOGIN_SETLOGIN 現在のセッションと関連を持つログインに passwd 構造で定義されたユーザを対応させます。 .Xr setlogin 2 このオプションが使用される場合、 .Ar pwd パラメタは NULL 値以外を指定する必要があります。 .It LOGIN_SETUSER 現在のプロセスの所有者に、 .Xr setuid 2 を使用して .Ar uid パラメータで指定された uid を設定します。 .It LOGIN_SETGROUP 現在のプロセスのグループとしての所有者に、 .Xr setgid 2 を使用して passwd 構造で定義されたグループ識別子を設定します。 また、 .Xr initgroups 3 呼出を実行して現在のプロセスに 関するグループのアクセスリストを整えます。 .Ar pwd パラメータは、このオプションが使用される場合、 NULL 以外の値を指定する必要があります。 .It LOGIN_SETRESOURCES システムのログインクラスデータベースで定義される 設定値に基づき現在のプロセスのリソースの限界値を設定します。 クラス権限タグは、-cur (ソフトリミット) または -max (ハードリミット) の接尾語と次に示す リソース設定子を適切に組み合わせて使用します。 .Bd -literal cputime RLIMIT_CPU filesize RLIMIT_FSIZE datasize RLIMIT_DATA stacksize RLIMIT_STACK coredumpsize RLIMIT_CORE memoryuse RLIMIT_RSS memorylocked RLIMIT_MEMLOCK maxproc RLIMIT_NPROC openfiles RLIMIT_NOFILE .Ed .It LOGIN_SETPRIORITY システムのログインクラスデータベースで定義された 値に基づき、現プロセスのスケジュール時の優先順位を設定します。使用される クラス権限タグは次のとおりです。 .Bd -literal Priority .Ed .It LOGIN_SETUMASK 現在のプロセスの umask にユーザまたはシステムの ログインクラスデータベースでの値を設定します。 使用されるクラス権限タグは次のとおりです。 .Bd -literal umask .Ed .It LOGIN_SETPATH ユーザまたはシステムのログインクラスデータベースに基づく 値を "path" および "manpath" 環境変数に設定します。 該当する環境変数セットとともに使用されるクラス権限タグは次のとおりです。 .Bd -literal path PATH manpath MANPATH .Ed .It LOGIN_SETENV ユーザまたはシステムのログインクラスデータベースに 基づく値を種々の環境変数に設定します。該当する環境変数セットとともに 使用されるクラス権限タグは次のとおりです。 .Bd -literal lang LANG charset MM_CHARSET timezone TZ term TERM .Ed .Pd 環境変数の追加として、リスト型の 権限設定 "setenv=var1 val1,var2 val2..,varN valN " を使用できます。 .It LOGIN_SETALL 上記の設定をすべて可能にします。 .El .Pp 環境変数の設定時と適切な passwd ポインタが .Ar pwd により与えられる場合、文字 .Ql \&~ と .Ql \&$ はそれぞれユーザのホームディレクトリおよびログイン名と 置きかえられことがあることに注意してください。 .Pp 関数 .Fn setclassresources と .Fn setclassenvironment は、上記コンテキスト設定の関数のサブセットですが、 単独でも使用できます。 .Sh 戻り値 .Fn setclasscontext および .Fn setusercontext は、エラーが起きた場合 -1 を返します。 正常終了の場合 0 を返します。 ユーザ、ログイン、グループまたはリソースの設定を行っている最中に エラーが起きた場合、LOG_ERR の優先順位によりメッセージが .Xr syslog 3 に通知され、現在アクティブ状態の機能に通知されます。 .Sh 関連項目 .Xr setgid 2 , .Xr setlogin 2 , .Xr setuid 2 , .Xr getcap 3 , .Xr initgroups 3 , .Xr login_cap 3 , .Xr login.conf 5 , .Xr termcap 5