我正在为一个 python 程序编写扩展,该程序需要存储密码并需要在非交互式 cronjobs 期间(用户未登录期间)访问它们。
我的第一个方法是用来seahorse
存储密码。但是seahorse
当用户未登录时无法访问,是吗?
答案1
您可能必须将密码存储在只有 root 才能读取的文件中。crontab 作业以 root 身份运行,因此他们可以访问,但系统的其他用户则不能。
如果可以接受要求用户先登录,您可以让用户运行一个程序,将密码从 gnome-keyring (seahorse) 传输到 tmpfs 文件系统上用户拥有的文件中。这样,它就不会以未加密的形式存储在非易失性存储器上。
答案2
另一种方法:
守护进程在用户首次登录时启动,从 gnome-keyring 收集密码并提供私有 fifo(模式 0600),它将等待请求(例如'PROTOCOL:USER@HOST')并使用密码应答。