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.