首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux功能不起作用

问Linux功能不起作用
EN

Server Fault用户
提问于 2017-02-23 19:58:04
回答 1查看 2.8K关注 0票数 1

我试图使用Linux功能允许程序(httpd)以非特权用户的身份绑定到特权端口(443)。

我使用以下命令设置程序的功能:

setcap CAP_NET_BIND_SERVICE+eip httpd

然后我验证了这个能力是用.

getcap httpd

指纹..。

httpd = cap_net_bind_service+eip

当我试图启动程序时,它会退出,因为它不能绑定到所需的端口。我使用strace发现了这一点:

strace -f httpd揭示“权限被拒绝,不能绑定,关闭”:

代码语言:javascript
复制
...
write(2, "(13)Permission denied: AH00072: "..., 85(13)Permission denied: AH00072: make_sock: could not bind to address [redacted X.X.X.X]:443) = 85
close(3) = 0
write(2, "no listening sockets available, "..., 46no listening sockets available, shutting down
...

如何使Linux功能正确工作并允许程序绑定到特权端口?

快速搜索表明,带有nosuid标志的挂载可以阻止功能的运行,并且我验证了它在这种情况下并没有干扰功能。

EN

回答 1

Server Fault用户

发布于 2019-09-24 21:58:33

您需要将功能设置为httpd应用程序的绝对路径。

代码语言:javascript
复制
setcap CAP_NET_BIND_SERVICE+eip <path/to/executable>

这里我将使用java,tomcat使用它来运行我们的应用程序。

java位置:

代码语言:javascript
复制
/opt/java/bin/java

设置能力:

代码语言:javascript
复制
setcap CAP_NET_BIND_SERVICE+eip /opt/java/bin/java
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/834557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档