タイトルが混乱して申し訳ありません。
現在の状況は次のとおりです。一般的なシステムサービスがrootユーザーと権限で実行されています。ところで、サービスは私の一般ユーザーに対していくつかの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
ができます。それでは、私は本当に真剣にシステムを壊したのだろうか(d)?