如何允许非root用户在特权端口上侦听?


11

我希望syslog以非root用户身份在linux机器上运行。这使得它不可能绑定到端口514-因为这是特权端口。有什么方法可以授予非管理员用户“ foo”侦听端口514的能力?

Answers:


10
setcap 'cap_net_bind_service=+ep' /path/to/syslogd

需要一个不古老的Linux内核(2.6.24或更高版本)


3

您可以配置rinetd(在大多数(如果不是全部)发行版的标准存储库中可用)以侦听端口514并将连接转发到某个其他端口(1024以上,例如1514)。这样,非特权用户进程可以在1514上侦听并rinetd转发连接,因此它似乎在514上侦听。

不过,这仅适用于TCP连接。如果您需要以这种方式以及(或)代替TCP来支持UDP(或其他任何方式),则可以使用iptables转换规则来达到相同的效果。


哦,那太容易了。这是有关如何在Ubuntu中进行操作的指南:ubuntugeek.com/…–
Ivan,


2

侦听非特权端口,并使用iptables dnat重定向连接。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.