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정의에는 많은 보안 제한 사항이 포함되어 있으므로 서비스가 루트로 실행되는 경우에도 전체 루트 권한에 액세스할 수 없습니다. 여기서 가장 관련성이 높은 제한은 파일 및 디렉터리 권한 확인을 무시할 수 있는 기능을 제공하는 기능인 CapabilityBoundingSet=CAP_SYS_TIME제외 CAP_DAC_OVERRIDE입니다 . root이것이 없으면 실행을 담당하는 시스템 하위 프로세스는 /lib/systemd/systemd-timedated파일 및 디렉터리 권한을 존중해야 합니다.기술적으로는 루트로 실행되지만.

권한을 수정하려면 다음 두 명령을 실행하세요.이 순서대로:

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

관련 정보