SUSER(9)

명칭
suser - 슈퍼 유저인지 어떤지의 체크와 기록

서식
<sys/param.h> <sys/proc.h> <sys/ucred.h> int suser(struct proc *proc) int suser_xxx(struct ucred *cred, struct proc *proc, int flags)

해설
suser 및 suser_xxx 함수는, 슈퍼 유저의 권한을 포함한 증명이 주어지고 있는지 어떤지를 체크합니다.

suser 함수는 가장 보통으로, 특별한 사정이 그 외의 방법을 요구하므로 없으면, 이것이 사용되어야 합니다.

suser_xxx 함수는, 체크되어야 할 증명이 그 프로세스 자신의 것이 아닐 때, 프로세스가 존재하지 않을 때, 또는 슈퍼 유저의 권한이 갇힌 root 에 확대되어야 할 때에, 사용되어야 합니다.

디폴트에서는, jail(2) 시스템 콜에 의해 갇히고 있는 경우에는, 프로세스는 슈퍼 유저의 권한을 가지지 않습니다. 그렇지만, 이것이 적절한 경우가 있어, suser_xxx 함수에의 flags 인수의 PRISON_ROOT 비트를 설정하는 것에 의해 실현됩니다. 이것이 감옥을 약하게 하지 않는 것을, 주의 깊게 재조사하는 것이 중요합니다. 일반적으로는 jail(2) 호출안의 암묵의 chroot(2) 에 의해 행동이 보호되고 있는 장소에만 있어, 이러한 권한이 승낙되어야 합니다.

suser 및 suser_xxx 함수는, 슈퍼 유저의 권한이 사용된 일을, 지정된 프로세스의 프로세스 구조 체내에 기록합니다. 이러한 함수의 기능의 일부는, 슈퍼 유저의 권한이 사용되었는지 어떠했는지를 통지하는 것에 있기 때문에, 다른 퍼미션의 가능성이 쓰여진 다음에 마셔, 이것들 함수를 호출해야 합니다.

반환값
suser 및 suser_xxx 함수는, 그 유저가 슈퍼 유저의 권한을 가지고 있는 경우에는 0 을 돌려주어, 그렇지 않은 경우에는 EPERM (을)를 돌려줍니다. 이것은, TRUE 의 응답이 슈퍼 유저 권한을 가지는 것을 나타내는 것 같은 다른 실장이란 역의 논리 (이)가 되어 있습니다.