我有一个脚本,我想作为守护进程运行,监听低编号端口 (< 1024)
脚本是 python,虽然 perl 的答案也是可以接受的。
脚本正在使用 start-stop-daemon 进行守护进程在启动脚本中,这可能会使答案复杂化
我真正(认为)不想要的是键入 ps -few 并看到此进程在其行上运行时带有“root”。
我该怎么做?
(从我对系统调用了解不足的角度来看,我可以看到 3 条途径,
- 以 root 身份运行脚本(没有 --user/--group/--chuid 到 start-stop-daemon),并让它在声明端口后降级它的用户
- 在脚本上设置 root (chmod u+s),并以运行用户身份运行脚本,(通过 --user/--group/--chuid 启动-停止守护进程,启动脚本仍然必须以root身份调用),在脚本中获取root权限,认领端口,然后恢复为普通用户
- 还有一些我不知道的
)
最佳答案
“你不知道的东西”是“能力”,但如前所述elsewhere功能在使用 shebang 方法的脚本中表现不佳,因此这里没有太多答案。我会采用“绑定(bind)端口,然后删除权限”的方法。
关于linux - 我如何将低编号端口声明为非根端口 "right way",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2574337/