Raspberry Pi timedatectlは、「トランスポートエンドポイントが接続されていません」および「.serviceファイル」エラーのため失敗します。

Raspberry Pi timedatectlは、「トランスポートエンドポイントが接続されていません」および「.serviceファイル」エラーのため失敗します。

私のRaspberry Piでこのコマンドを使用する際に問題がありますtimedatectl。実行すると、timedatectl status次のエラーメッセージが表示されます。

spaikon@raspberrypi:~ $ timedatectl status
Failed to query server: Transport endpoint is not connected
spaikon@raspberrypi:~ $ sudo timedatectl status
Failed to query server: The name org.freedesktop.timedate1 was not provided by any .service files

 $ sudo timedatectl show
Failed to parse bus message: No route to host

 $ sudo systemctl status systemd-timedated.service
● systemd-timedated.service - Time & Date Service
     Loaded: loaded (/lib/systemd/system/systemd-timedated.service; static)
     Active: inactive (dead)
       Docs: man:systemd-timedated.service(8)
             man:localtime(5)
             man:org.freedesktop.timedate1(5)

オンラインで解決策を見つけようとしましたが、これまで運がありませんでした。これらのエラーが何を意味するのか、それをどのように解決するのかわかりません。他の人にこの問題が発生して解決策を見つけた人はいますか?

どんな助けでも大変感謝します。

よろしくお願いします!

編集する:

 $ sudo systemctl status systemd-timedated.service
● systemd-timedated.service - Time & Date Service
     Loaded: loaded (/lib/systemd/system/systemd-timedated.service; static)
     Active: inactive (dead)
       Docs: man:systemd-timedated.service(8)
             man:localtime(5)
             man:org.freedesktop.timedate1(5)

$ sudo timedatectl
Failed to query server: The name org.freedesktop.timedate1 was not provided by any .service files

$ dlocate -S systemd-timedated.service
systemd: /lib/systemd/system/systemd-timedated.service
systemd: /usr/share/man/man8/systemd-timedated.service.8.gz

編集2:systemd-timedateの応答

 $ journalctl -fu  systemd-timedated.service
-- Journal begins at Thu 2023-06-08 20:47:15 EEST. --
Jun 09 12:07:52 raspberrypi systemd[1]: Starting Time & Date Service...
Jun 09 12:07:52 raspberrypi systemd-timedated[46085]: /lib/systemd/systemd-timedated: error while loading shared libraries: li                          bsystemd-shared-247.so: cannot open shared object file: Permission denied
Jun 09 12:07:52 raspberrypi systemd[1]: systemd-timedated.service: Main process exited, code=exited, status=127/n/a
Jun 09 12:07:52 raspberrypi systemd[1]: systemd-timedated.service: Failed with result 'exit-code'.
Jun 09 12:07:52 raspberrypi systemd[1]: Failed to start Time & Date Service.

編集3:

$ namei -mov /lib/systemd/libsystemd-shared-247.so
f: /lib/systemd/libsystemd-shared-247.so
drwx------ spaikon spaikon /
lrwxrwxrwx root    root    lib -> usr/lib
drwxr-xr-x root    root      usr
drwxr-xr-x root    root      lib
drwxr-xr-x root    root    systemd
-rw-r--r-- root    root    libsystemd-shared-247.so

ベストアンサー1

org.freedesktop.timedate1定義に表示されるD-Bus名systemd-timedated.service

systemctl cat systemd-timedated.service | grep org.freedesktop.timedate1

Documentation=man:org.freedesktop.timedate1(5)
BusName=org.freedesktop.timedate1

systemd-timedated.serviceシステムの D-Bus で必要な場合にのみ systemd で起動する必要があります。これがまさにこのtimedatectlコマンドが行うことです。

root@raspiw2:/home/pi# systemctl status systemd-timedated.service
● systemd-timedated.service - Time & Date Service
     Loaded: loaded (/lib/systemd/system/systemd-timedated.service; static)
     Active: inactive (dead)
       Docs: man:systemd-timedated.service(8)
             man:localtime(5)
             man:org.freedesktop.timedate1(5)

root@raspiw2:/home/pi# timedatectl
               Local time: Fri 2023-06-09 17:57:26 EEST
           Universal time: Fri 2023-06-09 14:57:26 UTC
                 RTC time: n/a
                Time zone: Europe/Helsinki (EEST, +0300)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

root@raspiw2:/home/pi# systemctl status systemd-timedated.service
● systemd-timedated.service - Time & Date Service
     Loaded: loaded (/lib/systemd/system/systemd-timedated.service; static)
     Active: active (running) since Fri 2023-06-09 17:57:26 EEST; 5s ago
       Docs: man:systemd-timedated.service(8)
             man:localtime(5)
             man:org.freedesktop.timedate1(5)
   Main PID: 1284 (systemd-timedat)
      Tasks: 1 (limit: 2057)
        CPU: 328ms
     CGroup: /system.slice/systemd-timedated.service
             └─1284 /lib/systemd/systemd-timedated

Jun 09 17:57:26 raspiw2 systemd[1]: Starting Time & Date Service...
Jun 09 17:57:26 raspiw2 systemd[1]: Started Time & Date Service.

systemd-timedated.servicesystemd基本パッケージの一部であるため、エラーメッセージはサービス定義が変更または削除されたことを示します。サービスをブロックするように設定しましたか、完全に削除しましたか?

dlocate -S systemd-timedated.service
systemd: /lib/systemd/system/systemd-timedated.service
systemd: /usr/share/man/man8/systemd-timedated.service.8.gz

出力には、journalctl -fu systemd-timedated.serviceシステムライブラリに権限の問題があることが示されています(わかりやすくするために複数行に分かれています)。

Jun 09 12:07:52 raspberrypi systemd-timedated[46085]: /lib/systemd/systemd-timedated: 
error while loading shared libraries: 
libsystemd-shared-247.so: cannot open shared object file: 
Permission denied

ライブラリはに配置する必要があります/lib/systemd/libsystemd-shared-247.so

権限を使用して、ファイルとすべての親ディレクトリをすぐに一覧表示できますnamei -mov /lib/systemd/libsystemd-shared-247.so。出力は次のようになります。

f: /lib/systemd/libsystemd-shared-247.so
drwxr-xr-x root root /
drwxr-xr-x root root lib
drwxr-xr-x root root systemd
-rw-r--r-- root root libsystemd-shared-247.so

ファイルの読み取り権限またはr-x親ディレクトリに対する読み取りおよびアクセス()権限が失われた場合を使用してchmod復元します。


$ namei -mov /lib/systemd/libsystemd-shared-247.so
f: /lib/systemd/libsystemd-shared-247.so
drwx------ spaikon spaikon /
[...]

他の権限は正しいように見えますが、ルートディレクトリの所有権が誤って「spaikon」に設定され、そのユーザーに対する権限のみがあるようです。これは明らかに間違っています。

このsystemd-timedated.service定義には多くのセキュリティ制限が含まれているため、サービスがrootとして実行されていても、root権限全体にアクセスすることはできません。ここで最も関連性の高い制限は、ファイルとディレクトリの権限チェックを無視する機能を提供する機能でCapabilityBoundingSet=CAP_SYS_TIMEある除外CAP_DAC_OVERRIDEです。rootこれがなければ、実行を担当するシステムサブプロセスは/lib/systemd/systemd-timedatedファイルとディレクトリの権限を尊重する必要があります。技術的にはrootとして実行されますが、

権限を変更するには、次の2つのコマンドを実行します。この順に:

sudo chmod go+rx /
sudo chown root:root /

おすすめ記事