nsd 3.2.4が出ていたので、mac miniと PowerBookの両方で更新しようと思ったのだが、Leopardで動いているPowerBookでは問題なかったが、Tigerで動いているmac miniでは"unable to set user id of daemon"というエラーが出て起動出来ない。とりあえず3.2.3と3.2.2で試してみたが、3.2.3は同様に駄目。現行の3.2.2でしか起動出来ない。なんでだ。
nsd.cを見てみると……
#ifdef HAVE_SETRESUID
if(setresuid(nsd.uid,nsd.uid,nsd.uid) != 0)
#elif defined(HAVE_SETREUID) && !defined(DARWIN_BROKEN_SETREUID)
if(setreuid(nsd.uid,nsd.uid) != 0)
#else /* use setuid */
if(setuid(nsd.uid) != 0)
#endif /* HAVE_SETRESUID */
error("unable to set user id of %s: %s",
nsd.username, strerror(errno));DEBUG(DEBUG_IPC,1, (LOG_INFO, "dropped user privileges, run as %s",
nsd.username));
}
#endif /* HAVE_GETPWNAM */
DARWIN_BROKEN_SETREUIDとか非常に不安になる文字列が……。これはやはり新しいmac miniを買えという天の采配なのか(違います
とりあえず3.2.2に戻したが、回避策を探そう。うむ。