Сценарии оболочки suid-ing просто опасны, как уже упоминалось (вот почему это не сработало).
Я подозреваю, что сопоставление двоичного файла не работает, потому что система порождает свой подпроцесс с действительным uid пользователя, а не с suid, опять же из соображений безопасности (это позволит вам заменить любой двоичный файл вызываемым и запустить это как корень).
Вы можете поместить копию перезагрузки в защищенное место, чтобы ее могли выполнять только те пользователи, которым вы хотите, а затем suid-root THAT.
Поочередно предоставьте им привилегию sudoer для выполнения ТОЛЬКО команды, о которой вы заботитесь, и система выдаст что-то вроде "ksh -c 'sudo reboot'"