Посылать надо не в теле сообщения, а в auxiliary data через cmsg_level==SOL_SOCKET и cmsg_type==SCM_RIGHTS то результат будет аналогичный dup.
Только для начала нужно разрешить передачу через setsockopt(fd,SOL_SOCKET,SO_PASSCRED,&enable,sizeof(enable));
В общем man unix; man cmsg; man setsockopt