Different approach for running airtime services as unprivileged user
This commit is contained in:
parent
301c0eb4b0
commit
ab35827439
|
@ -374,12 +374,14 @@ verbose "\n * Creating liquidsoap symlink..."
|
||||||
ln -sf /usr/bin/liquidsoap /usr/bin/airtime-liquidsoap
|
ln -sf /usr/bin/liquidsoap /usr/bin/airtime-liquidsoap
|
||||||
verbose "...Done"
|
verbose "...Done"
|
||||||
|
|
||||||
sed "s@WEB_USER@${web_user}@g" ${SCRIPT_DIR}/lib/Upstart.conf > /etc/dbus-1/system.d/Upstart.conf
|
sed "s@WEB_USER@${web_user}@g;s@WEB_ROOT@${web_root}@g" ${SCRIPT_DIR}/lib/airtime-session-init.conf > /etc/init/airtime-session-init.conf
|
||||||
chmod 644 /etc/init/airtime*
|
chmod 644 /etc/init/airtime/*
|
||||||
|
|
||||||
service dbus restart
|
service dbus restart
|
||||||
initctl reload-configuration
|
initctl reload-configuration
|
||||||
|
|
||||||
|
service airtime-session-init start
|
||||||
|
|
||||||
if [ ! -d /var/log/airtime ]; then
|
if [ ! -d /var/log/airtime ]; then
|
||||||
loud "\n-----------------------------------------------------"
|
loud "\n-----------------------------------------------------"
|
||||||
loud " * Installing Log Files * "
|
loud " * Installing Log Files * "
|
||||||
|
|
|
@ -1,71 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
|
||||||
<!DOCTYPE busconfig PUBLIC
|
|
||||||
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
|
|
||||||
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
|
|
||||||
|
|
||||||
<busconfig>
|
|
||||||
<!-- Only the root user can own the Upstart name -->
|
|
||||||
<policy user="root">
|
|
||||||
<allow own="com.ubuntu.Upstart" />
|
|
||||||
</policy>
|
|
||||||
|
|
||||||
<!-- Permit the root user to invoke all of the methods on Upstart, its jobs
|
|
||||||
or their instances, and to get and set properties. -->
|
|
||||||
<policy user="root">
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="org.freedesktop.DBus.Properties" />
|
|
||||||
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="com.ubuntu.Upstart0_6" />
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="com.ubuntu.Upstart0_6.Job" />
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="com.ubuntu.Upstart0_6.Instance" />
|
|
||||||
</policy>
|
|
||||||
|
|
||||||
<!-- Allow any user to introspect Upstart's interfaces, to obtain the
|
|
||||||
values of properties (but not set them) and to invoke selected
|
|
||||||
methods on Upstart and its jobs that are used to walk information. -->
|
|
||||||
<policy context="default">
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="org.freedesktop.DBus.Introspectable" />
|
|
||||||
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="org.freedesktop.DBus.Properties"
|
|
||||||
send_type="method_call" send_member="Get" />
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="org.freedesktop.DBus.Properties"
|
|
||||||
send_type="method_call" send_member="GetAll" />
|
|
||||||
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="com.ubuntu.Upstart0_6"
|
|
||||||
send_type="method_call" send_member="GetJobByName" />
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="com.ubuntu.Upstart0_6"
|
|
||||||
send_type="method_call" send_member="GetAllJobs" />
|
|
||||||
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="com.ubuntu.Upstart0_6.Job"
|
|
||||||
send_type="method_call" send_member="GetInstance" />
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="com.ubuntu.Upstart0_6.Job"
|
|
||||||
send_type="method_call" send_member="GetInstanceByName" />
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="com.ubuntu.Upstart0_6.Job"
|
|
||||||
send_type="method_call" send_member="GetAllInstances" />
|
|
||||||
</policy>
|
|
||||||
|
|
||||||
<!-- Permit the web user to invoke all of the methods on Upstart, its jobs
|
|
||||||
or their instances, and to get and set properties. -->
|
|
||||||
<policy user="WEB_USER">
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="org.freedesktop.DBus.Properties" />
|
|
||||||
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="com.ubuntu.Upstart0_6" />
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="com.ubuntu.Upstart0_6.Job" />
|
|
||||||
<allow send_destination="com.ubuntu.Upstart"
|
|
||||||
send_interface="com.ubuntu.Upstart0_6.Instance" />
|
|
||||||
</policy>
|
|
||||||
</busconfig>
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
instance WEB_USER
|
||||||
|
|
||||||
|
stop on runlevel [016]
|
||||||
|
|
||||||
|
script
|
||||||
|
uid=WEB_USER
|
||||||
|
HOME=WEB_ROOT
|
||||||
|
|
||||||
|
export XDG_RUNTIME_DIR="/run/airtime"
|
||||||
|
export HOME
|
||||||
|
|
||||||
|
exec su -s /bin/sh -c 'exec "$0" "$@"' $USER -- init --user --confdir /etc/init/airtime
|
||||||
|
end script
|
|
@ -12,7 +12,7 @@ if '--no-init-script' in sys.argv:
|
||||||
data_files = []
|
data_files = []
|
||||||
sys.argv.remove('--no-init-script') # super hax
|
sys.argv.remove('--no-init-script') # super hax
|
||||||
else:
|
else:
|
||||||
data_files = [('/etc/init', ['install/airtime-media-monitor.conf'])]
|
data_files = [('/etc/init/airtime', ['install/airtime-media-monitor.conf'])]
|
||||||
print data_files
|
print data_files
|
||||||
|
|
||||||
setup(name='airtime-media-monitor',
|
setup(name='airtime-media-monitor',
|
||||||
|
|
|
@ -12,7 +12,7 @@ if '--no-init-script' in sys.argv:
|
||||||
data_files = []
|
data_files = []
|
||||||
sys.argv.remove('--no-init-script') # super hax
|
sys.argv.remove('--no-init-script') # super hax
|
||||||
else:
|
else:
|
||||||
data_files = [('/etc/init', ['install/airtime-playout.conf', 'install/airtime-liquidsoap.conf'])]
|
data_files = [('/etc/init/airtime', ['install/airtime-playout.conf', 'install/airtime-liquidsoap.conf'])]
|
||||||
print data_files
|
print data_files
|
||||||
|
|
||||||
setup(name='airtime-playout',
|
setup(name='airtime-playout',
|
||||||
|
|
Loading…
Reference in New Issue