在系统启动时,我需要启动一个需要其他服务凭据(数据库等)进行交互的进程。 我出于安全原因显然不想将这些文件存储在磁盘上。
我试图想办法在启动时将这些凭据提供给进程 – 仅在启动时启动。 之后,他们应该只能用于这个过程。
这是可能的吗? 底线是要尽可能让入侵者获得这些证书。
这是可能的吗? 底线是要尽可能让入侵者获得这些证书。
将密码放在只有进程用户可以访问的文件中。 如果它以root身份启动,使其只能由root拥有可读root 。 如果它开始为apache ,然后apache 。
如果它像nobody一样以共享用户身份启动(或者甚至是apache ,如果Web服务器没有以拥有它们的用户身份运行脚本),那么你就被卡住了。 没有万无一失的方法使得它只能在一个特定的机器状态下(例如重新启动后)通过一个进程读取。
理想情况下,您的进程将以root身份启动,您可以在此处读取configuration,然后切换至非特权用户。 这也取决于你的用户的访问级别:如果他们可以sudo ,你可以忘记一切 。 他们可以直接进程,转储内存,或嗅探networking查看证书。