伊藤です。

> 
> 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);
}

メールによる返信