我在 NixOS 16.09 上使用 GNOME 3,但我不知道如何使“登录”密钥环在登录时自动解锁。
我怀疑这可以通过以下方式解决security.pam.services
选项,但我不是专家,并且文档不是很详细或清晰:
该选项定义 PAM 服务。服务通常对应于使用 PAM 的程序,例如登录或者密码。该集合的每个属性都定义一个 PAM 服务,属性名称定义服务的名称。
类型:子模块的列表或属性集
默认:
[ ]
一个相关但不太重要的问题是,如果我在 NixOS 下创建一个新用户帐户并使用 GNOME 登录,则不会自动创建密钥环。当我第一次在某处输入密码并接受将其保存在密钥环中时,我会收到一个对话框,要求输入密码以创建新的默认密钥环:
选择新密钥环的密码
应用程序想要创建名为“默认密钥环”的新密钥环。选择您想要使用的密码。
请注意,它想要创建一个名为“默认密钥环”的密钥环,而不是像 Ubuntu 那样的“登录”。
如果我输入登录密码,则会创建密钥环,但下次登录时它不会自动解锁,并且在第一次尝试使用它时会要求我输入密码。
这里是一个关于 KDE Wallet 的类似问题,到目前为止还没有公认的答案。
有一个相关的问题为 Nixpkgs 报告。
答案1
答案2
您可以使用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