gpt4 book ai didi

macos - 我可以将非特权应用程序绑定(bind)到 Mac OS X 上的特权端口吗?

转载 作者:可可西里 更新时间:2023-11-01 02:44:12 27 4
gpt4 key购买 nike

我正在编写一个通常由用户运行但需要绑定(bind)到特权 TCP 端口(502 - Modbus TCP)的服务器类型应用程序。端口号是行业标准,我的应用程序是一个模拟器,所以我不能真正更改为 >1024,因为大多数设备都针对此端口号进行了预编程,无法更改。

“Root EUID 安全策略”保护端口 502 不被 root 以外的任何人访问(参见 Authentication, Authorization, and Permissions Guide )。因此,当使用端口 < 1024 时,对 CFSocketSetAddress 的调用失败。

出于明显的安全原因,我试图避免以 root 身份运行我的模拟器应用程序。沙盒可以解决这个问题,但我知道它只在 10.7 Lion 中可用,我必须在 10.6 SL 中工作。

有人可以指出在这种情况下什么被认为是端口访问的“最佳实践”,以及一些指向示例和进一步阅读的指针。

非常感谢

PS:我看过苹果的Better Authorization Sample但它已有 5 年历史,并且涉及由 launchd 运行的特权帮助工具,有点麻烦。我希望有一个更好的解决方案,不涉及以 root 身份运行进程。

最佳答案

你可以使用 ipfw 来做到这一点;尝试 here了解它并 man ipfw 了解更多详细信息。

关于macos - 我可以将非特权应用程序绑定(bind)到 Mac OS X 上的特权端口吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9123410/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com