web-dev-qa-db-ja.com

D-Bus接続の取得に失敗しました:そのようなファイルまたはディレクトリはありません。 $ XDG_RUNTIME_DIRが設定されていません。インストールされているlibpam-systemd

Pi3で行ったようにLime2にYunohostをインストールしたところ、2か月と同じエラーが発生しました(「 ユーザーサービスを有効にできません。「D-Bus接続の取得に失敗しました:接続が拒否されました」サポートを参照 ")、今回のみlibpam-systemdがすでにインストールされています。

admin@Gildurklaus:~ $ systemctl --user list-units
Failed to get D-Bus connection: Connection refused

繰り返しになりますが、ユーザーパラメータがなければ、コマンドは正常に実行されます。

admin@Gildurklaus:~ $ systemctl list-units

  UNIT                                                                 LOAD   ACTIVE SUB       DESCRIPTION
  proc-sys-fs-binfmt_misc.automount                                    loaded active waiting   Arbitrary Executable File Formats File System Automount Point
  sys-devices-platform-soc-3f201000.serial-tty-ttyAMA0-hci0-rfkill1.device loaded active plugged   /sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/rfkil
  sys-devices-platform-soc-3f201000.serial-tty-ttyAMA0-hci0.device     loaded active plugged   /sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0
  ...
  To show all installed unit files use 'systemctl list-unit-files'.
  lines 102-129/129 (END)

また、Dbusはユーザーに対して実行されておらず、システム全体でのみ実行されています。

admin@Gildurklaus:~ $ ps -ef | grep dbus
message+   574     1  0 05:53 ?        00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
admin     1988  1971  0 10:03 pts/0    00:00:00 grep dbus

また、systemdはこのユーザーに対して実行されていないようです

admin@Gildurklaus:~$ ps -ef | grep dbus
message+   574     1  0 05:53 ?        00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
admin     1988  1971  0 10:03 pts/0    00:00:00 grep dbus
admin@Gildurklaus:~$ ps -ef | grep systemd
root       183     1  0 05:53 ?        00:00:01 /lib/systemd/systemd-journald
root       187     1  0 05:53 ?        00:00:00 /lib/systemd/systemd-udevd
root       572     1  0 05:53 ?        00:00:00 /lib/systemd/systemd-logind
message+   574     1  0 05:53 ?        00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
admin     1990  1971  0 10:04 pts/0    00:00:00 grep systemd

また、$ XDG_RUNTIME_DIRがありません。

admin@Gildurklaus:~ $ systemd --test
Trying to run as user instance, but $XDG_RUNTIME_DIR is not set.

今回はlibpam-systemdがインストールされています。

admin@Gildurklaus:~$ apt list --installed *systemd*
Listing... Done
libpam-systemd/oldstable,now 215-17+deb8u7 armhf [installed]
libsystemd0/oldstable,now 215-17+deb8u7 armhf [installed]
systemd/oldstable,now 215-17+deb8u7 armhf [installed]
systemd-shim/oldstable,now 9-1 armhf [installed,automatic]
systemd-sysv/oldstable,now 215-17+deb8u7 armhf [installed]
admin@Gildurklaus:~$ apt list --installed *dbus*   
Listing... Done
dbus/oldstable,now 1.8.22-0+deb8u1 armhf [installed,automatic]
libdbus-1-3/oldstable,now 1.8.22-0+deb8u1 armhf [installed,automatic]
libdbus-glib-1-2/oldstable,now 0.102-1 armhf [installed,automatic]
libnih-dbus1/oldstable,now 1.0.3-4.3 armhf [installed,automatic]

[更新]

私のPi3サーバーとLime2サーバーの微妙な違いに気づきました。 Pi3はXDG_SESSION_IDセッションを開始しますが、Lime2サーバーは開始しません。

Pi3

admin@Yroklaus:~ $ Sudo systemctl status systemd-logind.service
● systemd-logind.service - Login Service
   Loaded: loaded (/lib/systemd/system/systemd-logind.service; static)
   Active: active (running) since Sat 2018-03-24 15:43:32 UTC; 1h 27min ago
     Docs: man:systemd-logind.service(8)
           man:logind.conf(5)
           http://www.freedesktop.org/wiki/Software/systemd/logind
           http://www.freedesktop.org/wiki/Software/systemd/multiseat
 Main PID: 508 (systemd-logind)
   Status: "Processing requests..."
   CGroup: /system.slice/systemd-logind.service
           └─508 /lib/systemd/systemd-logind

Mar 24 15:43:32 Yroklaus systemd[1]: Starting Login Service...
Mar 24 15:43:32 Yroklaus systemd-logind[508]: New seat seat0.
Mar 24 15:43:32 Yroklaus systemd[1]: Started Login Service.
Mar 24 15:43:32 Yroklaus systemd-logind[508]: Couldn't add lingering user folatt: No such file or directory
Mar 24 15:43:32 Yroklaus systemd-logind[508]: User enumeration failed: No such file or directory
Mar 24 16:47:01 Yroklaus systemd-logind[508]: New session c1 of user admin.

ライム2

admin@Gildurklaus:~$ Sudo systemctl status systemd-logind.service
● systemd-logind.service - Login Service
   Loaded: loaded (/lib/systemd/system/systemd-logind.service; static)
   Active: active (running) since Sat 2018-03-24 16:43:45 CET; 1h 27min ago
     Docs: man:systemd-logind.service(8)
           man:logind.conf(5)
           http://www.freedesktop.org/wiki/Software/systemd/logind
           http://www.freedesktop.org/wiki/Software/systemd/multiseat
 Main PID: 571 (systemd-logind)
   Status: "Processing requests..."
   CGroup: /system.slice/systemd-logind.service
           └─571 /lib/systemd/systemd-logind

Mar 24 16:43:45 Gildurklaus systemd-logind[571]: New seat seat0.
Mar 24 16:43:45 Gildurklaus systemd[1]: Started Login Service.
2
Folatt

そして再びDbusが実行されています。

いいえ、明らかにそうではありません。そして、それも最後ではありませんでした。

プロセスリストにはsystem-wide Desktop Busブローカーのみが表示されます。コマンド引数の--systemと、プロセスがnot running as yoであることに注意してください。

systemctl--userオプションを指定して実行すると、[ユーザーごと]デスクトップバスブローカー経由でsystemdのユーザーごとのインスタンスと通信します。

どちらも実際には実行されていません。

systemdのユーザーごとのインスタンスを起動すると、ユーザーごとのデスクトップブローカーも起動する可能性があります。前者は後者を管理し、dbus.socketユニット(/usr/lib/systemd/user/dbus.socketから)は、ユーザーごとのサービスマネージャーですでに有効になっている可能性があります。 (有効にする必要があるのはsocketユニットであり、serviceユニットではないことに注意してください。)

つまり、前回のQ&Aでは明示されていなかったとしても、実際には以前と同じ答えです。systemdのユーザーごとのインスタンスが実行されていることを確認し、それがユーザーごとに起動することを確認してくださいデスクトップバスブローカー。 pam_systemdが手動で実行するステップを実行して、ステップ自体が最初から機能することを確認できます。次に、pam_systemdが実際にログイン手順の一部として呼び出されるように構成されていることを確認します。

suはログインメカニズムではありませんであることを覚えておいてください。 既存のインタラクティブログインセッションで機能します。問題のアカウントとしてログインしていない場合、systemdフックはそのアカウントのsystemdのユーザーごとのインスタンスをアクティブにしません。

参考文献

5
JdeBP

libpam-systemdPAMスタックで呼び出す必要があります。

pam-auth-updateを実行して、有効になっていることを確認します

2
Bigon