Acho que encontrei a solução para o meu problema, então agora estou postando.
Testar os privilégios de administrador pode ser feito da seguinte forma:
uid_t uid = getuid(), euid = geteuid();
if(uid < 0 || uid != euid) {
// Can stop or reboot system
} else {
// Cannot stop nor reboot system
}