在系统启动时,我需要启动一个需要凭据才能与其他服务(数据库等)交互的进程。出于安全原因,我显然不想将这些存储在磁盘上。
我正在想办法在启动时向进程提供这些凭据 - 并且仅在启动时提供。此后,它们应该只对进程可用。
这有可能吗?最重要的是让入侵者尽可能难以获得这些凭证。
答案1
这有可能吗?最重要的是让入侵者尽可能难以获得这些凭证。
将密码放在只有进程用户可以访问的文件中。如果它以 开头root
,则使其root
仅由 拥有可读权限。如果它以 开头apache
,则apache
。
如果它开始于共享用户喜欢nobody
(或者甚至apache
,如果 Web 服务器不以拥有脚本的用户身份运行脚本),那么您就陷入困境。没有万无一失的方法可以使其仅在特定机器状态下由一个进程读取(例如,在重新启动后)。
理想情况下,您的流程将从root
您可以读取配置的地方开始,然后切换到非特权用户。这也取决于您的用户拥有的访问级别:如果他们可以sudo
,您可以忘记一切他们可以查看strace
进程、转储内存或嗅探网络来查看凭证。