 586ca6ba3c
			
		
	
	
		586ca6ba3c
		
	
	
	
	
		
			
			Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
		
			
				
	
	
		
			96 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| # dbus-daemon wrapper script for dbus-vmstate testing
 | |
| #
 | |
| # This script allows to tweak the dbus-daemon policy during the test
 | |
| # to test different configurations.
 | |
| #
 | |
| # This program is free software; you can redistribute it and/or modify
 | |
| # it under the terms of the GNU General Public License as published by
 | |
| # the Free Software Foundation; either version 2 of the License, or
 | |
| # (at your option) any later version.
 | |
| #
 | |
| # This program is distributed in the hope that it will be useful,
 | |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 | |
| # GNU General Public License for more details.
 | |
| #
 | |
| # You should have received a copy of the GNU General Public License
 | |
| # along with this program; if not, see <http://www.gnu.org/licenses/>.
 | |
| #
 | |
| # Copyright (C) 2019 Red Hat, Inc.
 | |
| 
 | |
| write_config()
 | |
| {
 | |
|     CONF="$1"
 | |
|     cat > "$CONF" <<EOF
 | |
| <busconfig>
 | |
|   <type>session</type>
 | |
|   <listen>unix:tmpdir=$DBUS_VMSTATE_TEST_TMPDIR</listen>
 | |
| 
 | |
|   <policy context="default">
 | |
|      <!-- Holes must be punched in service configuration files for
 | |
|           name ownership and sending method calls -->
 | |
|      <deny own="*"/>
 | |
|      <deny send_type="method_call"/>
 | |
| 
 | |
|      <!-- Signals and reply messages (method returns, errors) are allowed
 | |
|           by default -->
 | |
|      <allow send_type="signal"/>
 | |
|      <allow send_requested_reply="true" send_type="method_return"/>
 | |
|      <allow send_requested_reply="true" send_type="error"/>
 | |
| 
 | |
|      <!-- All messages may be received by default -->
 | |
|      <allow receive_type="method_call"/>
 | |
|      <allow receive_type="method_return"/>
 | |
|      <allow receive_type="error"/>
 | |
|      <allow receive_type="signal"/>
 | |
| 
 | |
|      <!-- Allow anyone to talk to the message bus -->
 | |
|      <allow send_destination="org.freedesktop.DBus"
 | |
|             send_interface="org.freedesktop.DBus" />
 | |
|      <allow send_destination="org.freedesktop.DBus"
 | |
|             send_interface="org.freedesktop.DBus.Introspectable"/>
 | |
|      <allow send_destination="org.freedesktop.DBus"
 | |
|             send_interface="org.freedesktop.DBus.Properties"/>
 | |
|      <!-- But disallow some specific bus services -->
 | |
|      <deny send_destination="org.freedesktop.DBus"
 | |
|            send_interface="org.freedesktop.DBus"
 | |
|            send_member="UpdateActivationEnvironment"/>
 | |
|      <deny send_destination="org.freedesktop.DBus"
 | |
|            send_interface="org.freedesktop.DBus.Debug.Stats"/>
 | |
|      <deny send_destination="org.freedesktop.DBus"
 | |
|            send_interface="org.freedesktop.systemd1.Activator"/>
 | |
| 
 | |
|      <allow own="org.qemu.VMState1"/>
 | |
|      <allow send_destination="org.qemu.VMState1"/>
 | |
|      <allow receive_sender="org.qemu.VMState1"/>
 | |
| 
 | |
|   </policy>
 | |
| 
 | |
|   <include if_selinux_enabled="yes"
 | |
|    selinux_root_relative="yes">contexts/dbus_contexts</include>
 | |
| 
 | |
| </busconfig>
 | |
| EOF
 | |
| }
 | |
| 
 | |
| ARGS=
 | |
| for arg in "$@"
 | |
| do
 | |
|     case $arg in
 | |
|         --config-file=*)
 | |
|           CONF="${arg#*=}"
 | |
|           write_config "$CONF"
 | |
|           ARGS="$ARGS $1"
 | |
|           shift
 | |
|         ;;
 | |
|         *)
 | |
|           ARGS="$ARGS $1"
 | |
|           shift
 | |
|         ;;
 | |
|     esac
 | |
| done
 | |
| 
 | |
| exec dbus-daemon $ARGS
 |