Мне пришлось сделать грязный Linux-хак для кого-то, чтобы они могли запустить принтер с помощью команды оболочки cupsenable printername, будучи пользователем без полномочий root. Я не хотел, чтобы они могли использовать синтаксис cupsenable как root, поэтому я просто написал оболочку C, которая санирует вход в argv[1] и вызывает system("cupsenable sanitizedprintername").
Я сделал программу setuid root, но даже в этом случае cupsenable не удалось с "разрешением отклонить". Затем я вставил вызов setuid(0) до system() и, вот и вот, он работал.
Не обращайте внимания на то, что существует лучший способ предоставить пользователям контроль над принтером. Вероятно, есть лучший способ. Меня интересуют тонкости chmod u+s vs. setuid(0) vs. system(). Почему он так себя ведет?