LOGIN_CLASS(3) FreeBSD ライブラリ関数マニュアル LOGIN_CLASS(3)
名称
setclasscontext, setclassenvironment, setclassresources, setusercontext − ログインクラスデータベースにアクセスする能力をもつ関数群 |
ライブラリ
システムユーティリティライブラリ (libutil, −lutil) |
書式
#include <sys/types.h> int |
setclasscontext(const char *classname, unsigned int flags); int |
setusercontext(login_cap_t *lc, const struct passwd *pwd, uid_t uid, unsigned int flags); void |
setclassresources(login_cap_t *lc); void |
setclassenvironment(login_cap_t *lc, const struct passwd *pwd, int paths); |
解説 |
これらの関数は、ログインクラスデータベース関して login_cap(3) のマニュア ルに記載されているインタフェースより高次のインタフェースを提供します。こ れらの関数が使用されるのは、リソースに関する限界値や、環境およびシステム にログインするユーザへの課金の設定、およびログインクラスに基づくシステム デーモンの設定と環境の適切な組を設定するときです。これらの関数呼び出し は、現在のプロセスが root 権限で実行されているときだけ可能で す。LOGIN_SETLOGIN フラグが使用される場合、この関数は setlogin(2) の呼び 出しを実行し、当該関数についてはマニュアルページに説明してある注意を払う 必要があります。これは同一のセッションで実行されているすべてのプロセスに 影響をあたえますが、現在のプロセスが影響を受けることはありません。 setclasscontext() は、種々の、指定された名前付クラスの値に基づくクラスの コンテキスト値 (リソースの限界値、umask やプロセスの優先順位) を設定しま す。 setusercontext() は、指定された login_cap_t オブジェクト、指定された passwd レコード (login_cap_t が nullの場合) に基づく、クラスのコンテキス トバリューを設定します。また最新のセッションへのログインや、最新のプロセ スのユーザおよびグループの所有者を設定します。これらの関数は、それぞれ flags パラメータで渡されたビットフラグにより選択でき、次に示す中の複数の ものから構成されます。 |
LOGIN_SETLOGIN
現在のセッションと関連を持つログインに passwd 構造で 定義されたユーザを対応させます。 setlogin(2) このオプ ションが使用される場合、 pwd パラメータは NULL 値以外 を指定する必要があります。 LOGIN_SETUSER LOGIN_SETGROUP LOGIN_SETRESOURCES cputime RLIMIT_CPU |
openfiles |
||||
RLIMIT_NOFILE |
||||
sbsize |
||||
RLIMIT_SBSIZE |
LOGIN_SETPRIORITY
システムのログインクラスデータベースで定義された値に 基づき、現プロセスのスケジュール時の優先順位を設定し ます。使用されるクラス権限タグは次のとおりです。 priority |
LOGIN_SETUMASK
現在のプロセスの umask にユーザまたはシステムのログイ ンクラスデータベースでの値を設定します。使用されるク ラス権限タグは次のとおりです。 umask |
LOGIN_SETPATH
ユーザまたはシステムのログインクラスデータベースに基 づく値を ’path’ および ’manpath’ 環境変数に設定しま す。該当する環境変数セットとともに使用されるクラス権 限タグは次のとおりです。 path PATH |
LOGIN_SETENV
ユーザまたはシステムのログインクラスデータベースに基 づく値を種々の環境変数に設定します。該当する環境変数 セットとともに使用されるクラス権限タグは次のとおりで す。 lang LANG 環境変数の追加として、リスト型の権限設定 ’setenv=var1 val1,var2 val2..,varN valN ’ を使用できます。 |
LOGIN_SETALL
上記の設定をすべて可能にします。 環境変数の設定時と適切な passwd ポインタが pwd により与えられる場合、文字 ‘~’ と ‘$’ はそれぞれユーザのホームディレクトリおよびログイン名と置きかえ られことがあることに注意してください。 関数 setclassresources() および setclassenvironment() は、上記コンテキス ト設定の関数のサブセットですが、単独でも使用できます。 戻り値 |
setclasscontext() および setusercontext() は、エラーが起きた場合 -1 を返 します。正常終了の場合 0 を返します。ユーザ、ログイン、グループまたはリ ソースの設定を行っている最中にエラーが起きた場合、LOG_ERR の優先順位によ りメッセージが syslog(3) に通知され、現在アクティブ状態の機能に通知されま す。 |
関連項目
setgid(2), setlogin(2), setuid(2), getcap(3), initgroups(3), login_cap(3), login.conf(5), termcap(5) FreeBSD 10.0 December 28, 1996 FreeBSD 10.0 |