Вот как работают эти функции.
Если программа имеет бит setuid, она будет выполняться как ее владелец. Как только он выполняется, он может вызвать seteuid для запуска как первоначальный пользователь, а не как его владелец. Дитти за сетгид.
Принцип - принцип наименьших привилегий. Если я пишу программу, которая требует специального доступа, я хочу, чтобы при доступе было как можно меньше кода. Итак, я устанавливаю его setuid, но первым делом он возвращает привилегии до узкого окна кода, которому они нужны.
Вы не можете вызвать sudo (кроме, конечно, через fork / exec). Вы можете быть программой наподобие sudo, в которой установлен setuid и которая решает, когда использовать эту удивительную мощность соответствующим образом.