私のシステムに深刻な問題があります。私のログインマネージャ(LightDM)は、成功したログイン時にgnome-keyring-daemonを起動し、期待どおりに私のキーリングのロックを解除します(編集する:すべてがPAMを通過します。)
問題は、1つのコンポーネントのみを使用してgnome-keyring-daemonを起動しましたが、、、およびがsecrets
すべて必要であることです。後者がデフォルトではない理由がわからず、これをパッケージマネージャに報告する必要があるかもしれません。pkcs11
secrets
ssh
gpg
このファイルは、/usr/share/dbus-1/services/org.freedesktop.secrets.service
gnome-keyring-daemonをどのように実行するかを定義します。
[D-BUS Service]
Name=org.freedesktop.secrets
Exec=/usr/bin/gnome-keyring-daemon --start --foreground --components=secrets
Emacsで編集して問題を解決できますが、gnome-keyringパッケージの次のアップグレードでは内容が汚れて変更が失われます。
したがって、問題は、Exec
次のシステムアップグレード中にこのサービスが失われることを防ぎながら、このサービスの配線をどのように変更しますか?カスタムサービスを有効にして組み込みサービスを無効にする方法はありますか?
私のシステムとそのバージョンには関連パッケージがインストールされています。
$ LC_ALL=C pacman -Qi dbus gnome-keyring lightdm | egrep "(Name|Version)"
Name : dbus
Version : 1.8.8-1
Name : gnome-keyring
Version : 3.12.2-1
Name : lightdm
Version : 1:1.12.0-1
答え1
さて、この問題に対する解決策を見つけました。これは私の問題を直接解決しませんが、ここで質問した質問を解決します。
質問
実際、gnome-keyringは私のGPGキーのロックを解除しなかったので、ログインするたびにGPGキーのパスワードを要求し(Emacsは設定のために.gpgファイルを読むため)、ログインした後にすべてのパスワードを使用できました。だから私はOfflineimapは私が働いたときに私の電子メールアカウントのパスワードを全く得ることができないと文句を言わなかった。
.xprofile
次に、次のようにgnome-keyring-daemonを起動してみました(LightDMで読み取る、他のDMは別のファイルを読み取ることができます)。
#!/bin/bash
eval $(gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh)
export GPG_AGENT_INFO SSH_AUTH_SOCK
再起動して(ログアウトして再度ログインするよりもこれが好きです)、ログインした後にGPGキーのパスワードを求めるメッセージは表示されませんが、Offlineimapは私のEメールアカウントのパスワードを取得できないと文句を言います。走る海馬を見つけましたか?パスワード部分。
解決策
数時間戦ってさまざまな組み合わせを試した後(そのうちの1つが表示されます)パスワードセクションにありますが、フォルダログインはロックされています! )正しい解決策が見つかりました。
#!/bin/bash
source /etc/X11/xinit/xinitrc.d/30-dbus # You need a dbus session, duh
eval $(gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh)
export GPG_AGENT_INFO SSH_AUTH_SOCK
完璧。問題が解決しました。 El es fin, muchachos.
編集する:gnome-keyring-daemonは、エクスポートできるより多くの環境変数をエクスポートできます。不要になったかどうかを確認するか、GPG_AGENT_INFO
シェルで実行してSSH_AUTH_SOCK
文に応じて変数を追加します。gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh
export
LightDMはPAM構成のためにまだgnome-keyring-daemonを起動しています習慣この設定を変更することをお勧めします。しかし、、ログイン後にgnome-keyringで何かをロック解除するためにパスワードを入力した場合、LightDMがパスワードを提供していない可能性があります。 LightDM PAMモジュールを追加しました/etc/pam.d/lightdm
。
auth optional pam_gnome_keyring.so try_first_pass
追加がtry_first_pass
重要です(読むLinux-PAMシステム管理者ガイド悪い考えではありません。私のシステムのLightDMにはこのパラメータは含まれていません。
これが私がGnome Keyringの問題を解決した方法です!
答え2
(タイトルの質問にそれ自体有用なので、回答)
~によるとD-バス文書、
異なるディレクトリにある 2 つの .service ファイルが同じサービス名を提供する場合、優先順位の高いディレクトリのファイルが使用されます (たとえば、システム バス上の /usr/local/share/dbus-1/system-.serviceファイル)。サービスは、/usr/share/dbus-1/system-services のサービスよりも優先されます。
また、dbus-daemonのマンページによると、
Unixでは、標準セッションサービスディレクトリは次のとおりです。
$XDG_RUNTIME_DIR/dbus-1/services
、XDG_RUNTIME_DIR
設定されている場合$XDG_DATA_HOME/dbus-1/services
、XDG_DATA_HOME
デフォルトは~/.local/share
directory/dbus-1/services
directory
の各項目のデフォルト値はXDG_DATA_DIRS
次のとおりです。XDG_DATA_DIRS
/usr/local/share:/usr/share
${datadir}/dbus-1/services
${datadir}
dbusをコンパイルするときに指定された項目の場合、通常/usr/share
したがって、お客様の場合に応じてサービスファイルをコピーして、~/.local/share/dbus-1/services/org.freedesktop.secrets.service
要件に応じて変更することができます。元のファイルは完全に無視されます。