내 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.service
은 systemd
기본 패키지의 일부이므로 오류 메시지는 서비스 정의가 변경되거나 삭제되었음을 나타냅니다. 서비스를 차단하도록 설정했거나 완전히 제거했습니까?
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 /