Offlineimap
我們可以加密offlineimaprc中的任何欄位嗎?
如果您使用offlineimap 與gmail 同步,則可以加密密碼並使用python 腳本在執行時對其進行解密。這是通過設置完成的
remotepass = passwd(‘gmail.gpg’)
在offlineimaprc 文件中,其中passwd 是python 函式。這種python函式的使用是否僅限於某些鍵,就像
remotepass
上面的例子一樣,或者我理論上可以在每個鍵的右側使用python函式?我問的原因如下:我也在嘗試加密其他密鑰的其他值。但是,我收到如下錯誤:ERROR: While attempting to sync account 'gmail' ('http error', 401, 'Unauthorized', <httplib.HTTPMessage instance at 0x7f8ca13541b8>) (configuration is: {'client_secret': "passwd('gmail_client_secret.gpg')", 'grant_type': 'refresh_token', 'refresh_token': "passwd('gmail_rf_token.gpg')", 'client_id': "passwd('gmail_client_id.gpg')"})
而且我不確定該功能是否
passwd
真的被執行。在 python 解釋器中執行 python 函式會給出正確的結果。
據我了解,只有少數鍵具有被評估為 python 程式碼的特權。其中一些在配置文件中通過以字元串“eval”結尾的鍵明確表示,例如
remotepasseval
,但其他僅在註釋中註明,例如nametrans
,這顯然必須是一個函式。由於
offlineimap
是在 python 中,您可能可以在您的發行版中找到原始碼。在我的案例中,文件/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.py
有要處理的程式碼,remotepasseval
這很容易理解:passwd = self.getconf('remotepasseval', None) if passwd != None: return self.localeval.eval(passwd)
您可以尋找其他用途
localeval
來查看以這種方式處理的密鑰。如果您希望評估其他密鑰,使用類似呼叫創建您自己的該程序版本可能並不難。