[英]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.