C言語システムコール-setuid
setuid
概要
setuidは実ユーザID、実効ユーザID、実グループID、実効グループIDを設定します。
setuid()を使用したプログラムの実行には、root権限(実効ユーザIDが0の状態)が必要になります。
setuid関連システムコール
- seteuid()
- 実効ユーザIDのみを設定します。
- setreuid()
- 実ユーザIDと実効ユーザIDを設定します。
- setgid()
- 実グループIDのみを設定します。
- setegid()
- 実効グループIDのみを設定します。
- setreuid()
- 実グループIDと実効グループIDを設定します。
サンプルプログラム
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
static void
print_idinfo(void)
{
printf("uid = %d\n", (int)getuid());
printf("euid = %d\n", (int)geteuid());
printf("gid = %d\n", (int)getgid());
printf("egid = %d\n", (int)getegid());
}
int
main(void)
{
int rc = 0;
rc = setuid(geteuid());
if(rc < 0){
printf("Error: setuid(%d) %s\n", errno, strerror(errno));
return(-1);
}
print_idinfo();
return(0);
}
関連ページ
- C言語
- C言語システムコール
- C言語システムコール-chdir
- C言語システムコール-chroot
- C言語システムコール-fork
- C言語システムコール-execve
- C言語システムコール-wait
- C言語システムコール-getpid
- C言語システムコール-getpriority / C言語システムコール-setpriority
- C言語システムコール-getpgid / C言語システムコール-setpgid
- C言語システムコール-getuid / C言語システムコール-setuid
- C言語システムコール-getsid / C言語システムコール-setsid
- C言語システムコール-getgroups / C言語システムコール-setgroups
- C言語システムコール-getrusage
- C言語システムコール-getrlimit / C言語システムコール-setrlimit
- C言語システムコール-nanosleep
- C言語システムコール-kill
- C言語システムコール-sigaction
- C言語システムコール-sigsuspend
- C言語システムコール-signal
- C言語システムコール-getitimer
- C言語システムコール