NixOSでGNOMEキーリングを自動的にロック解除するには?

NixOSでGNOMEキーリングを自動的にロック解除するには?

NixOS 16.09でGNOME 3を使用していますが、ログイン時に「ログイン」キーリングを自動的にロック解除する方法がわかりません。

私はこれが解決できると思います。security.pam.servicesオプションがありますが、私は専門家ではなく、文書は非常に詳細または明確ではありません。

このオプションはPAMサービスを定義します。サービスは通常、次のようにPAMを使用するプログラムに対応します。ログインまたはパスワード。このコレクションの各属性はPAMサービスを定義し、属性名はサービス名を定義します。

タイプ:サブモジュールの属性リストまたはセット

基本: [ ]

関連していますが、それほど重要ではない問題は、NixOSで新しいユーザーアカウントを作成し、GNOMEを使用してログインすると、キーリングが自動的に作成されないことです。最初にどこかにパスワードを入力してキーリングに保存することを受け入れると、新しいデフォルトのキーリングを生成するためにパスワードの入力を求めるダイアログボックスが表示されます。

新しいキーリングのパスワードを選択してください

アプリケーションは「Default Keyring」という新しいキーリングを生成しようとします。使用したいパスワードを選択してください。

Ubuntuのように、「ログイン」ではなく「デフォルトキーリング」というキーリングを生成しようとしています。

ログインパスワードを入力するとキーリングが生成されますが、次回のログイン時に自動的にロックは解除されず、初めて使用するときにパスワードを入力するように求められます。


ここKDEウォレットに関する同様の質問です。現在まで、一般的に受け入れられる答えはありません。


関連しています質問Nixpkgsのレポート。

答え1

質問は〜です。安定19.03。ログインマネージャがGDMの場合は、次の設定を行います。構成オプション

{ # ...
  security.pam.services.gdm.enableGnomeKeyring = true;
}

ログインマネージャを使用していない場合は、次のオプションを設定する必要があることが示唆されました。

{ # ...
  services.gnome3.gnome-keyring.enable = true;
}

答え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

関連情報