将非特权应用程序绑定到 Mac OS X 上的特权端口

Eim*_*tas 5 osx tcp

我想为 httpd 服务器创建 launchd.plist 文件。问题是 - 当 httpd 以特权用户身份运行时,它会守护进程,这是launchd.plist 手册页所不允许的。如果我不以超级用户身份运行它 - 它无法绑定到特权端口(这不是必需的,但很好)。

问题 - 将非特权守护程序绑定到特权端口有哪些选项?我知道 Linux 有privbind项目。是否有可以与 Mac OS X 的 launchd 一起使用的解决方案?我可以/应该使用 privbind 并将其与 launchd.plist 格式一起使用吗?

小智 1

Apache 支持几个特殊的调试定义,与 -D 一起使用:

\n\n
    \n
  • NO_DETACH:Don\xe2\x80\x99t 与控制终端分离。
  • \n
  • FOREGROUND: (隐含 NO_DETACH): Don\xe2\x80\x99t 守护进程或与控制终端分离
  • \n
  • ONE_PROCESS(隐含NO_DETACH和FOREGROUND):Don\xe2\x80\x99t允许子进程处理客户端请求;请改用初始过程。
  • \n
  • DEBUG(暗示前面的所有内容):将 MPM 置于带有附加日志记录的特殊调试模式。
  • \n
\n\n

因此,运行“httpd -D FOREGROUND”将阻止其守护进程。

\n\n

我还遇到了一个论坛帖子,其中包含 Apache2 的 launchd plist,您可能可以适应它。

\n\n

(注意:我知道这些都不能回答实际问题,但希望它们对最初描述的问题有用。)

\n