ルート以外のユーザーがd-busを介してタイムゾーンを設定できるようにするにはどうすればよいですか?

ルート以外のユーザーがd-busを介してタイムゾーンを設定できるようにするにはどうすればよいですか?

私は、root以外のユーザーにタイムゾーンを設定する組み込みLinuxデバイスにアプリケーションを作成しています。必須事項にまとめるには、次のことを行いたいと思います。

dbus-send --system --dest=org.freedesktop.timedate1 --print-reply /org/freedesktop/timedate1 \
        org.freedesktop.timedate1.SetTimezone  string:'America/New_York' boolean:false

ただし、これを行うと常に次のエラーが発生します。

Error org.freedesktop.DBus.Error.AccessDenied: Permission denied

その他の情報

デバイスがSELinuxを実行しています。障害のあるpolkitがインストールされていないか、実行されていません。

/etc/dbus-1/system.d/org.freedesktop.timedate1.conf次のd-bus設定ファイルがあります。

<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
  <policy user="root">
    <allow own="org.freedesktop.timedate1"/>
    <allow send_destination="org.freedesktop.timedate1"/>
    <allow receive_sender="org.freedesktop.timedate1"/>
  </policy>
  <policy user="ceres">
    <allow own="org.freedesktop.timedate1"/>
    <allow send_destination="org.freedesktop.timedate1"/>
    <allow receive_sender="org.freedesktop.timedate1"/>
  </policy>

  <policy context="default">
    <allow send_destination="org.freedesktop.timedate1"/>
    <allow receive_sender="org.freedesktop.timedate1"/>
  </policy>
</busconfig>

ceresユーザーにタイムゾーンを変更する権限を与えたいと思います。

私の質問

  1. ルート以外の特定のユーザーにこのD-Busインターフェースを介してタイムゾーンを設定させるにはどうすればよいですか?
  2. より一般的に「許可拒否」エラーの原因をどのように確認しますか?
  3. journalctl --followこのような場合、何も表示されません。どこを見るべきですか?

ベストアンサー1

dbusLennartが以下のリンクで説明するように、設定だけではこれを行うことはできません...(説明で提案されているように)このバグレポートを確認する必要があり
ます。polkitsudo timedatectl...

dbusアプローチ:PolKitなしでコンパイルするときのLinux機能チェックに置き換え

おすすめ記事