伊藤です。
>
> 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);
}