C言語システムコール-chroot
chroot
概要
chrootはプロセスのルートディレクトリを指定したディレクトリに変更します。
chrootでルートディレクトリ変更後には上位ディレクトリにアクセスすることができなくなります。
実行プロセスの子プロセスもchrootのルートディレクトリを引き継ぎます。
chrootを実行しても、プロセスのカレントディレクトリは変更されません。
そのため、chroot実行後には新しいルートディレクトリにchdirで移動する必要があります。
また、chrootの実行にはroot権限が必要となります。
サンプルプログラム
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
int
main(void)
{
int rc = 0;
rc = chroot("./tmp");
if(rc < 0){
printf("Error: chroot(%d) %s\n", errno, strerror(errno));
return(-1);
}
rc = chdir("./tmp");
if(rc < 0){
printf("Error: chdir(%d) %s\n", errno, strerror(errno));
return(-1);
}
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言語システムコール