Gnome3
如何在 NixOS 中自動解鎖 GNOME 密鑰環?
我在 NixOS 16.09 上使用 GNOME 3,但我無法弄清楚如何在登錄時自動解鎖“登錄”密鑰環。
我懷疑這可以通過該
security.pam.services
選項來解決,但我不是專家,並且文件不是很冗長或清晰:此選項定義 PAM 服務。服務通常對應於使用 PAM 的程序,例如login或passwd。該集合的每個屬性都定義了一個 PAM 服務,屬性名稱定義了服務的名稱。
*類型:*子模組的列表或屬性集
預設:
[ ]
一個相關但不太重要的問題是,如果我在 NixOS 下創建一個新使用者帳戶並使用 GNOME 登錄,則不會自動創建密鑰環。第一次在某處輸入密碼並接受將其保存在密鑰環中時,我會收到一個對話框,要求輸入密碼以創建新的預設密鑰環:
選擇新密鑰環的密碼
應用程序想要創建稱為“預設密鑰環”的新密鑰環。選擇您要使用的密碼。
請注意,它想創建一個名為“預設密鑰環”的密鑰環,而不是像 Ubuntu 那樣的“登錄”。
如果我輸入我的登錄密碼,就會創建密鑰環,但在下次登錄時它不會自動解鎖,並且在我第一次嘗試使用它時會被要求輸入密碼。
這是一個關於 KDE 錢包的類似問題,到目前為止還沒有公認的答案。
Nixpkgs 報告了一個相關問題。
此問題已在 19.03中修復。如果登錄管理器是 GDM,則設置配置選項
{ # ... security.pam.services.gdm.enableGnomeKeyring = true; }
有人建議,如果不使用登錄管理器,則需要設置以下選項:
{ # ... services.gnome3.gnome-keyring.enable = true; }
您可以使用該
security.pam.services.<name?>.text
選項。添加到您的配置中:
pam.services = [ { name = "gnome_keyring" text = '' auth optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so session optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start password optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so ''; } ];
這將添加必要的 pam 條目
/etc/pam.d
$ cat /etc/static/pam.d/gnome_keyring auth optional /nix/store/ffcm7771dvva2xs56dzp6avxzf0pg35x-gnome-keyring-3.20.0/lib/security/pam_gnome_keyring.so session optional /nix/store/ffcm7771dvva2xs56dzp6avxzf0pg35x-gnome-keyring-3.20.0/lib/security/pam_gnome_keyring.so auto_start password optional /nix/store/ffcm7771dvva2xs56dzp6avxzf0pg35x-gnome-keyring-3.20.0/lib/security/pam_gnome_keyring.so