在更改程序(守护程序)的有效uid / gid之前,我曾经调用过openlog()的代码。从安全角度或可预测性角度来看,在设置有效uid / gid之后调用openlog()会更好吗?

我猜在大多数平台上,openlog()会为syslogd打开Unix套接字吗?对此的权限是否过于严格,以致系统用户无法打开套接字。

最佳答案

也许有人在特定情况下openlog需要提升的特权,但我却没有发现(并且要记住lynx,过去曾在其内置的默认功能中使用此功能-直到2009)。守护程序(请参见this页)不必以root身份运行,并且经常使用该功能。

本书The Hacker's Handbook: The Strategy Behind Breaking into and Defending Networks引用了openlog及其相关功能作为漏洞,


  允许攻击者将“假冒”系统日志消息注入日志文件


鉴于此,确保您的应用程序中没有任何弱点是至关重要的(因为总有可能成为其他程序入侵的代理)。

因此,答案似乎是不,也许没有必要这样做,但是尽早放弃特权始终是一个好规则。如果您发现需要特权的特定情况,那就是重新考虑特权使用的地方。

关于c - 应该在seteuid/setegid之前还是之后调用syslog的openlog(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29876191/

10-08 22:28