LOGIN_CLASS(3)

명칭
setclasscontext, setclassenvironment, setclassresources, setusercontext - 로그인 클래스 데이타베이스에 액세스 하는 능력을 가지는 함수군

프로그램 라이브러리
libutil

서식
<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) 의 메뉴얼에 기재되어 있는 인타후스보다 고차의 인타후스를 제공합니다. 이러한 함수가 사용되는 것은, 리소스에 관한 한계치나, 환경 및 시스템에 로그인하는 유저에게로의 과금의 설정, 및 로그인 클래스 에 근거하는 시스템 demon의 설정과 환경의 적절한 조를 설정할 때입니다. 이러한 함수 호출은, 현재의 프로세스가 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
    유저 또는 시스템의 로그인 클래스 데이타베이스에 근거하는 값을 '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) 에 통지되어 현재 액티브 상태의 기능에 통지됩니다.

관련 항목
setgid(2), setlogin(2), setuid(2), getcap(3), initgroups(3), login_cap(3), login.conf(5), termcap(5)