在更改程序(守护程序)的有效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/