在ghci中运行main作为sudo

时间:2014-01-02 12:37:00

标签: haskell ghci

我有一个快照申请。

我想在ghci中的端口80上运行它以进行本地调试。 通常情况下,我会在已编译的二进制文件上运行sudo ./main -p 80来实现此目的,但在ghci中我得到了一个权限被拒绝。

*Main> :main -p 80
Initializing app @ /
Initializing heist @ /heist
...loaded 35 templates from /Users/dmj/blah/templates
Initializing CookieSession @ /sess

Listening on http://0.0.0.0:80/
Error on startup:
bind: permission denied (Permission denied)

Shutting down...

适用于非特权端口。

*Main> :main -p 8000
Initializing app @ /
Initializing heist @ /heist
...loaded 35 templates from /Users/dmj/blah
Initializing CookieSession @ /sess
Initializing db @ /auth
Initializing acid-state @ /acid

Listening on http://0.0.0.0:8000/

1 个答案:

答案 0 :(得分:2)

以另一种方式查看此帖:Is there a way for non-root processes to bind to "privileged" ports on Linux?

sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ncat

只需用'/ usr / bin / ncat'代替ghci的完整路径,它就可以了。

(我确信你多次被唠叨过以root为基础做任何长时间工作的想法有多糟糕......而且,这是一个特定于Linux的解决方案,所以如果你在Mac或其他工作* nix,这对你不起作用。)