Isso não responde diretamente à questão, mas não creio que a pergunta certa esteja sendo feita aqui. Parece-me que o consulente quer um programa que irá agir de forma presumível se tiver certas permissões ou não, mas eu diria que procurar por sudo não é a maneira de fazer isso. Em primeiro lugar muitos sistemas não podem implementar um "sudo", não é necessário em Linux ou muitos Unixes.
Por exemplo, um usuário pode estar logado como root já, tornando o sudo absurdo ou talvez o sistema tenha usuários não-root que ainda tenham recursos para executar a tarefa administrativa que o programa pode desejar fazer. Finalmente, talvez o sistema não tenha raiz ou sudo e, em vez disso, use um sistema de controle de acesso obrigatório com recursos diferentes e não capture todo o superusuário para o sudo. Ou o usuário pode ser sudoed, mas em uma conta que tenha menos permissões do que sua própria conta por motivos de segurança (geralmente executo código não confiável com um usuário temporário sem privilégios que só pode gravar em ramdisks para eliminar, não aumentar minhas permissões ). Em geral, é uma má idéia assumir um modelo de permissões específico como sudo ou a existência de root ou assumir que um usuário sudo tem algum privilégio em particular.
Se você quiser descobrir se tem permissões para realizar uma operação, a melhor maneira é simplesmente tentar fazê-lo e, em seguida, verificar errno para problemas de permissão se ele falhar ou se for uma operação em vários estágios que deve falhar ou todos são bem-sucedidos, você pode verificar se uma operação funcionará com funções como o POSIX acessar (cuidado) de possíveis condições de corrida aqui se as permissões estão sendo ativamente alteradas)
Se, além disso, você precisar conhecer o usuário real por trás do sudo, use getlogin função que deve funcionar para qualquer sessão interativa com um terminal subjacente e permitiria, por exemplo, descobrir quem está 'realmente' executando o comando para auditar ou encontrar o diretório home do usuário real para salvar logs.
Finalmente, se o que você realmente quer é descobrir se um usuário tem acesso root (ainda é uma má ideia, mas menos implementação específica), você pode usar getuid para verificar se há um fluxo de 0 e, assim, raiz.