Linuxfunction不起作用

我正在尝试使用Linux Capabilities来允许程序(httpd)以非特权用户的身份绑定到特权端口(443)。

我使用这个命令设置程序的function:

setcap CAP_NET_BIND_SERVICE+eip httpd

然后我证实了这个function已经成功设置…

getcap httpd

打印…

httpd = cap_net_bind_service+eip

当我尝试启动程序时,它将退出,因为它无法绑定到所需的端口。 我用strace发现了这个:

strace -f httpd显示“权限被拒绝,无法绑定,closures”:

 ... write(2, "(13)Permission denied: AH00072: "..., 85(13)Permission denied: AH00072: make_sock: could not bind to address [redacted XXXX]:443) = 85 close(3) = 0 write(2, "no listening sockets available, "..., 46no listening sockets available, shutting down ... 

我应该做些什么来使Linuxfunction正常工作,并允许程序绑定到特权端口?

快速search表明,使用nosuid标志的安装可以防止function运行,并且证实它不会干扰这种情况。