̾??
setclasscontext,
setclassenvironment,
setclassresources,
setusercontext —
???????饹?ǡ????١????˥???????????ǽ?Ϥ????Ĵؿ???
System Utilities Library (libutil,
-lutil)
<sys/types.h>
<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
- ?????ƥ??Υ??????饹?ǡ????١????????????줿
?ͤ˴??Ť??????ץ??????Υ??????塼??????ͥ?????̤????ꤷ?ޤ??????Ѥ?????
???饹???¥????ϼ??ΤȤ????Ǥ???
- LOGIN_SETUMASK
- ???ߤΥץ??????? umask
?˥桼???ޤ??ϥ????ƥ???
???????饹?ǡ????١????Ǥ??ͤ????ꤷ?ޤ???
???Ѥ????륯?饹???¥????ϼ??ΤȤ????Ǥ???
- LOGIN_SETPATH
- ?桼???ޤ??ϥ????ƥ??Υ??????饹?ǡ????١????˴??Ť??ͤ?
'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
?ˤ???Ϳ???????????硢ʸ??
‘~’ ??
‘$’
?Ϥ??줾???桼???Υۡ????ǥ??쥯?ȥꤪ???ӥ???????̾??
?֤????????줳?Ȥ????뤳?Ȥ????դ??Ƥ?????????
?ؿ?
setclassresources()
??????
setclassenvironment()
?ϡ??嵭?????ƥ??????????δؿ???
???֥??åȤǤ?????ñ?ȤǤ????ѤǤ??ޤ???
setclasscontext() ??????
setusercontext() ?ϡ????顼????????????
-1 ???֤??ޤ??? ???ェλ?ξ??? 0
???֤??ޤ???
?桼?????????????롼?פޤ??ϥ?????????????ԤäƤ?????????
???顼???????????硢LOG_ERR
??ͥ?????̤ˤ??????å???????
syslog(3)
?????Τ??졢???ߥ????ƥ??־??֤ε?ǽ?????Τ????ޤ???