Другое решение состоит в том, чтобы сделать Ваше приложение setuid так, чтобы оно могло связать с портом 80. Как корень, сделайте следующее
chown root ./myapp
chmod +S ./myapp
Следует иметь в виду, что выполнение этого, если оно не сделано абсолютно правильное, подвергнет Вас потенциальным дырам в системе безопасности, потому что Ваше приложение будет говорить с сетью и будет работать с полным корнем priviledges. При взятии этого решения необходимо посмотреть на исходный код для Apache или Lighttpd или чего-то подобного, где они используют полномочия пользователя root открыть порт, но затем сразу бросить те privs и "стать" более низким привилегированным пользователем так, чтобы угонщик не мог принять целый компьютер.
Обновление: Как замечено в этом вопросе, кажется, что ядра Linux с тех пор 2.6.24 имеют новую возможность, которые позволяют Вам отмечать исполняемый файл (но не сценарий, конечно) как наличие"CAP_NET_BIND_SERVICE
"возможность. При установке debian пакета "libcap2-мусорное-ведро" можно сделать это путем выдачи команды
setcap 'cap_net_bind_service=+ep' /path/to/program