Я пишу приложение типа сервера, которое обычно запускается пользователем, но требует привязки к привилегированному порту TCP (502 - Modbus TCP). Номер порта является отраслевым стандартом, а мое приложение представляет собой симулятор, поэтому я не могу изменить его на> 1024, так как большинство устройств запрограммированы на этот номер порта и не могут быть изменены.
«Политика безопасности Root EUID» защищает порт 502 от доступа кого-либо, кроме root (см. Руководство по аутентификации, авторизации и разрешениям ). Поэтому вызов CFSocketSetAddress завершается неудачно при использовании портов <1024. </p>
Я пытаюсь избежать запуска моего приложения-симулятора в качестве пользователя root по очевидным причинам безопасности.
Песочница может решить эту проблему, но я понимаю, что она доступна только в 10.7 Lion, и мне нужно работать в 10.6 SL.
Может ли кто-нибудь указать, что в данном случае считается «наилучшей практикой» для доступа к портам, и, возможно, некоторые ссылки на примеры и дальнейшее чтение.
Большое спасибо
PS: Я видел образец лучшей авторизации Apple , но ему 5 лет, и он немного громоздкий, включая привилегированный вспомогательный инструмент, запускаемый launchd. Я надеюсь, что есть лучшее решение, которое не включает запуск процесса от имени пользователя root.