제목이 혼란스러워서 죄송합니다.
현재 상황은 다음과 같습니다. 일반 시스템 서비스가 루트 사용자 및 권한으로 실행되고 있습니다. 그런데 서비스가 내 일반 사용자에 대해 일부 dconf 값을 변경하도록 되어 있습니다. 그래서 sudo
다음의 도움을 받아 서비스에서 dconf 값을 작성하고 있습니다.
sudo -u user dbus-launch dconf write /...
dconf 값을 작성하면 잘 작동합니다. 그러나 dconf 값을 작성한 후에는 서비스 자체가 systemd 로그에 아무것도 기록할 수 없습니다( journalctl
서비스의 로그 출력을 전달하거나 볼 수 없음 systemctl status
). sudo dbus 명령을 실행하기 전에만 로그 출력을 볼 수 있습니다.
서비스 로그의 마지막 몇 줄은 다음과 같습니다.
sudo[1478]: root : TTY=unknown ; PWD=/ ; USER=user ; COMMAND=/usr/bin/dbus-launch dconf write /...
sudo[1478]: pam_unix(sudo:session): session opened for user used by (uid=0)
dbus-daemon[1493]: [session uid=1000 pid=1491] Activating service name='ca.desrt.dconf' requested by ':1.0' (uid=1000 pid=1489 comm=dbus-launch dconf write ...)
dbus-daemon[1493]: [session uid=1000 pid=1491] Successfully activated service 'ca.desrt.dconf'
sudo[1478]: pam_unix(sudo:session): session closed for user user
상승된 systemd 서비스에서 일반 사용자로 dconf 명령을 실행한 후 출력 로깅 가능성을 잃지 않도록 이 문제를 해결하려면 어떻게 해야 합니까?
편집: dbus를 사용하여 systemd 로그에 쓸 수 있다는 느낌이 들며 이를 실행할 때 sudo -u user dbus-launch
사용할 dbus 세션(사용자 또는 루트/시스템 세션)이 혼동됩니다. 그렇다면 내가 정말 심각하게 시스템을 깨뜨린 걸까(d)?