繁体   English   中英

单声道:是否可以在没有root的情况下在端口80上运行服务?

[英]Mono: Is it possible to run a service on port 80 without root?

有没有办法让应用程序在端口80上运行而不必强制以root身份运行它?

我不想以root身份运行该进程,因为这是不安全的,我想使用端口80.我不想在应用程序前面使用代理。

例如Apache以root身份启动并删除权限,有没有办法在Mono中实现这一点?

对于上下文我正在运行ServiceStack,但我一般也会问。

好吧,我终于用authbind完成了这个

工作就像一个魅力。 唯一需要注意的是你必须使用--deep开关,因为mono实际上运行另一个进程。 这是一个令人烦恼的陷阱 ,浪费了一个小时左右。

所以最终命令看起来像:

sudo -u myapp authbind --deep ./MyApp.exe

我使用了autid绑定的uid方法,所以这是配置:

在/ etc / authbind / byuser / 999:

0.0.0.0,80-89

最重要的是,尝试在Mono的上下文中找到这个问题的答案是徒劳的 - 只需在搜索中用"Java"替换"Mono" ,Java / Tomcat的解决方案也适用于Mono。

不,这是操作系统限制。 1024以下的所有端口都是特权端口 ,进程必须具有0的有效UID才能绑定到它们。

我不确定如何在Mono中完成这个,但是你对Apache的描述是这样做的。 通常在绑定端口后分叉子进程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM