tail head cat sleep
QR code linking to this page

manページ  — LOGIN_CLASS

名称

setclasscontext, setclassenvironment, setclassresources, setusercontext – ログインクラスデータベースにアクセスする能力をもつ関数群

内容

ライブラリ

System Utilities Library (libutil, -lutil)

書式

#include <sys/types.h>
#include <login_cap.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 現在のプロセスの所有者に、 setuid(2) を使用して uid パラメータで指定された uid を設定します。
LOGIN_SETGROUP 現在のプロセスのグループとしての所有者に、 setgid(2) を使用して passwd 構造で定義されたグループ識別子を設定します。 また、 initgroups(3) 呼出を実行して現在のプロセスに 関するグループのアクセスリストを整えます。 pwd パラメータは、このオプションが使用される場合、 NULL 以外の値を指定する必要があります。
LOGIN_SETRESOURCES
  システムのログインクラスデータベースで定義される 設定値に基づき現在のプロセスのリソースの限界値を設定します。クラス権限タグ は、-cur (ソフトリミット) または -max (ハードリミット) の接尾語と次に示す リソース設定子を適切に組み合わせて使用します。
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
sbsize          RLIMIT_SBSIZE
LOGIN_SETPRIORITY システムのログインクラスデータベースで定義された 値に基づき、現プロセスのスケジュール時の優先順位を設定します。使用される クラス権限タグは次のとおりです。
priority
LOGIN_SETUMASK 現在のプロセスの umask にユーザまたはシステムの ログインクラスデータベースでの値を設定します。 使用されるクラス権限タグは次のとおりです。
umask
LOGIN_SETPATH ユーザまたはシステムのログインクラスデータベースに基づく値を amp;'path' および 'manpath' 環境変数に設定します。該当する環境変数 セットとともに使用されるクラス権限タグは次のとおりです。
path            PATH
manpath         MANPATH
LOGIN_SETENV ユーザまたはシステムのログインクラスデータベースに 基づく値を種々の環境変数に設定します。該当する環境変数セットとともに 使用されるクラス権限タグは次のとおりです。
lang            LANG
charset         MM_CHARSET
timezone        TZ
term            TERM

環境変数の追加として、リスト型の 権限設定 'setenv=var1 val1,var2 val2..,varN valN ' を使用できます。

LOGIN_SETALL 上記の設定をすべて可能にします。

環境変数の設定時と適切な passwd ポインタが pwd により与えられる場合、文字 ‘amp;~’ と ‘amp;$’ はそれぞれユーザのホームディレクトリおよびログイン名と 置きかえられことがあることに注意してください。

関数 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)

LOGIN_CLASS (3) December 28, 1996

tail head cat sleep
QR code linking to this page


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

Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what's wrong.”