有什么方法可以允许创建特权端口?

有什么方法可以允许创建特权端口?

我想允许普通用户创建 161 端口。其中一种方法是:

setcap 'cap_net_bind_service=+ep' /home/user/bin/my_program

但这种方式对我来说并不合适,因为它setcap破坏了‘RPATH’,所以我无法启动‘my_program’。

也许有什么方法可以解决这个问题。是否可以为 ala 用户提供此权限?

答案1

听起来你想要的是授权绑定。我在这里链接的是 Wikipedia 页面,而不是主页,因为主页只是官方存储库的 gitweb 页面,因此对最终用户来说没什么用。简而言之,authbind 使用 LD_PRELOADbind()通过 SUID 辅助程序来间接调用,从而允许程序绑定保留端口。确保将对 authbind 的访问限制在您信任的帐户中,并记住它将允许任何可以访问它的用户绑定到任何特权端口。

或者,如果您根本不关心安全性,则可以将这一行添加到相关系统的 sysctl 配置中:

net.ipv4.ip_unpriveleged_port_start = 0

从下次重新启动开始,这将从系统中删除特权端口的整个概念。

但是,请确保您非常小心地执行此操作。许多低编号端口用于核心网络基础设施,未经授权的用户访问这些端口很容易导致滥用。如果您使用 sysctl 方法,请特别小心,因为这将允许任何人绑定到任何港口。

相关内容