当前位置:首页 > 操作系统 > Linux

linux-以root身份运行的应用程序,创建任何人都可以读取的日志

我遇到了这个问题,希望了解行业中的最佳做法.

我正在编写使用开源日志记录库的软件.该库的功能之一是能够创建旋转日志文件.例如,如果最大日志大小为2GB,则当达到限制时,将创建一个新文件,并将旧文件重命名.

我的应用程序必须以root用户身份运行,因为它需要访问较小范围的端口号.结果,由应用程序创建的日志只能由root用户读取.

我希望任何用户都可以读取日志,而不仅仅是root用户.我该如何实现?是否有解决该问题的行业标准?

解决方法:

可以赋予非root用户进程特定的管理员特权-例如绑定特权端口的能力.这比仅以root用户身份运行应用程序的“全有或全有”方法安全得多,并且被认为是更好的解决方案.

在这种情况下,您需要为其提供CAP_NET_BIND_SERVICE功能. answer是执行此操作的良好起点.

主要的两种方法似乎是

>创建一个以root身份运行的setuid包装程序,并删除除所需功能以外的所有功能,然后执行实际程序
>使用setcap设置单个系统上可执行文件的功能.

有关功能的更多信息,请从Linux终端运行以下命令

$man 7 capabilities

或者,访问此站点:http://linux.die.net/man/7/capabilities


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!