1*586ca6baSMarc-André Lureau#!/bin/sh 2*586ca6baSMarc-André Lureau 3*586ca6baSMarc-André Lureau# dbus-daemon wrapper script for dbus-vmstate testing 4*586ca6baSMarc-André Lureau# 5*586ca6baSMarc-André Lureau# This script allows to tweak the dbus-daemon policy during the test 6*586ca6baSMarc-André Lureau# to test different configurations. 7*586ca6baSMarc-André Lureau# 8*586ca6baSMarc-André Lureau# This program is free software; you can redistribute it and/or modify 9*586ca6baSMarc-André Lureau# it under the terms of the GNU General Public License as published by 10*586ca6baSMarc-André Lureau# the Free Software Foundation; either version 2 of the License, or 11*586ca6baSMarc-André Lureau# (at your option) any later version. 12*586ca6baSMarc-André Lureau# 13*586ca6baSMarc-André Lureau# This program is distributed in the hope that it will be useful, 14*586ca6baSMarc-André Lureau# but WITHOUT ANY WARRANTY; without even the implied warranty of 15*586ca6baSMarc-André Lureau# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*586ca6baSMarc-André Lureau# GNU General Public License for more details. 17*586ca6baSMarc-André Lureau# 18*586ca6baSMarc-André Lureau# You should have received a copy of the GNU General Public License 19*586ca6baSMarc-André Lureau# along with this program; if not, see <http://www.gnu.org/licenses/>. 20*586ca6baSMarc-André Lureau# 21*586ca6baSMarc-André Lureau# Copyright (C) 2019 Red Hat, Inc. 22*586ca6baSMarc-André Lureau 23*586ca6baSMarc-André Lureauwrite_config() 24*586ca6baSMarc-André Lureau{ 25*586ca6baSMarc-André Lureau CONF="$1" 26*586ca6baSMarc-André Lureau cat > "$CONF" <<EOF 27*586ca6baSMarc-André Lureau<busconfig> 28*586ca6baSMarc-André Lureau <type>session</type> 29*586ca6baSMarc-André Lureau <listen>unix:tmpdir=$DBUS_VMSTATE_TEST_TMPDIR</listen> 30*586ca6baSMarc-André Lureau 31*586ca6baSMarc-André Lureau <policy context="default"> 32*586ca6baSMarc-André Lureau <!-- Holes must be punched in service configuration files for 33*586ca6baSMarc-André Lureau name ownership and sending method calls --> 34*586ca6baSMarc-André Lureau <deny own="*"/> 35*586ca6baSMarc-André Lureau <deny send_type="method_call"/> 36*586ca6baSMarc-André Lureau 37*586ca6baSMarc-André Lureau <!-- Signals and reply messages (method returns, errors) are allowed 38*586ca6baSMarc-André Lureau by default --> 39*586ca6baSMarc-André Lureau <allow send_type="signal"/> 40*586ca6baSMarc-André Lureau <allow send_requested_reply="true" send_type="method_return"/> 41*586ca6baSMarc-André Lureau <allow send_requested_reply="true" send_type="error"/> 42*586ca6baSMarc-André Lureau 43*586ca6baSMarc-André Lureau <!-- All messages may be received by default --> 44*586ca6baSMarc-André Lureau <allow receive_type="method_call"/> 45*586ca6baSMarc-André Lureau <allow receive_type="method_return"/> 46*586ca6baSMarc-André Lureau <allow receive_type="error"/> 47*586ca6baSMarc-André Lureau <allow receive_type="signal"/> 48*586ca6baSMarc-André Lureau 49*586ca6baSMarc-André Lureau <!-- Allow anyone to talk to the message bus --> 50*586ca6baSMarc-André Lureau <allow send_destination="org.freedesktop.DBus" 51*586ca6baSMarc-André Lureau send_interface="org.freedesktop.DBus" /> 52*586ca6baSMarc-André Lureau <allow send_destination="org.freedesktop.DBus" 53*586ca6baSMarc-André Lureau send_interface="org.freedesktop.DBus.Introspectable"/> 54*586ca6baSMarc-André Lureau <allow send_destination="org.freedesktop.DBus" 55*586ca6baSMarc-André Lureau send_interface="org.freedesktop.DBus.Properties"/> 56*586ca6baSMarc-André Lureau <!-- But disallow some specific bus services --> 57*586ca6baSMarc-André Lureau <deny send_destination="org.freedesktop.DBus" 58*586ca6baSMarc-André Lureau send_interface="org.freedesktop.DBus" 59*586ca6baSMarc-André Lureau send_member="UpdateActivationEnvironment"/> 60*586ca6baSMarc-André Lureau <deny send_destination="org.freedesktop.DBus" 61*586ca6baSMarc-André Lureau send_interface="org.freedesktop.DBus.Debug.Stats"/> 62*586ca6baSMarc-André Lureau <deny send_destination="org.freedesktop.DBus" 63*586ca6baSMarc-André Lureau send_interface="org.freedesktop.systemd1.Activator"/> 64*586ca6baSMarc-André Lureau 65*586ca6baSMarc-André Lureau <allow own="org.qemu.VMState1"/> 66*586ca6baSMarc-André Lureau <allow send_destination="org.qemu.VMState1"/> 67*586ca6baSMarc-André Lureau <allow receive_sender="org.qemu.VMState1"/> 68*586ca6baSMarc-André Lureau 69*586ca6baSMarc-André Lureau </policy> 70*586ca6baSMarc-André Lureau 71*586ca6baSMarc-André Lureau <include if_selinux_enabled="yes" 72*586ca6baSMarc-André Lureau selinux_root_relative="yes">contexts/dbus_contexts</include> 73*586ca6baSMarc-André Lureau 74*586ca6baSMarc-André Lureau</busconfig> 75*586ca6baSMarc-André LureauEOF 76*586ca6baSMarc-André Lureau} 77*586ca6baSMarc-André Lureau 78*586ca6baSMarc-André LureauARGS= 79*586ca6baSMarc-André Lureaufor arg in "$@" 80*586ca6baSMarc-André Lureaudo 81*586ca6baSMarc-André Lureau case $arg in 82*586ca6baSMarc-André Lureau --config-file=*) 83*586ca6baSMarc-André Lureau CONF="${arg#*=}" 84*586ca6baSMarc-André Lureau write_config "$CONF" 85*586ca6baSMarc-André Lureau ARGS="$ARGS $1" 86*586ca6baSMarc-André Lureau shift 87*586ca6baSMarc-André Lureau ;; 88*586ca6baSMarc-André Lureau *) 89*586ca6baSMarc-André Lureau ARGS="$ARGS $1" 90*586ca6baSMarc-André Lureau shift 91*586ca6baSMarc-André Lureau ;; 92*586ca6baSMarc-André Lureau esac 93*586ca6baSMarc-André Lureaudone 94*586ca6baSMarc-André Lureau 95*586ca6baSMarc-André Lureauexec dbus-daemon $ARGS 96