伊藤です。 > > 2. setuid する プログラムは core を吐くのか? > ==> kernel: pid 69141 (a.out), uid 1001: exited on signal 11 > core は吐きませんでした。 > ここで、core を吐くように OS を設定できればいいと思うのですが... >
ごめんなさい、 kern.sugid_coredump: 1 で、setuid()したプログラムも、coreファイル作るようになりますね。 ただし、setuid()したプログラムが、自分のホームディレクトリに chdir()してないと、ダメみたいです。 #include <stdio.h> #include <signal.h> void handle(int nsig) { printf("signal %d\n", nsig); exit(0); } main() { char *p; int nret; /*signal(SIGSEGV, handle); /**/ nret = setuid(10001); printf("setuid() nret = %d\n", nret); nret = chdir("/tmp/guest"); printf("chdir() nret = %d\n", nret); memset(p,0x00,100); }