I would like to run privileged code from within the callbacks, how can
I do this?  Are the callbacks being executed from a separate thread
which does not have privileges?  What am I missing here?

Callbacks are made from whatever thread you're calling spin()/spinOnce() from.
 

Or is there a better, different method to run a node with root privileges?


The pr2_etherCAT (http://www.ros.org/wiki/pr2_etherCAT) node uses root
privelges.  A program called pr2_grant runs the chmod command similar
to what I did.  But pr2_etherCAT does not subscribe to any topics, nor
does it include <sys/io.h> so I couldn't get more help there.

pr2_etherCAT loads plugins which do subscribe to many topics.

Josh