mpd: run mpd as a non-root user
[feed/packages.git] / sound / mpd / files / mpd.init
index 9ec164db7e4a0a57c7505959f5f73ba381df07f2..f89049d6cc5570b42ab986e29e9f26a12b1baa4e 100644 (file)
@@ -9,6 +9,9 @@ PROG=/usr/bin/mpd
 CONFIGFILE=/etc/mpd.conf
 NICEPRIO=-10
 
+USER="mpd"
+GROUP="mpd"
+
 #TODO: Add uci config - nice, config
 
 start_service() {
@@ -16,7 +19,10 @@ start_service() {
 
        #create mpd directories from config
        pld=$(grep ^playlist_directory "$CONFIGFILE" | cut -d "\"" -f 2 | sed "s/~/\/root/g")
-       [ -d "$pld" ] || mkdir -m 0755 -p "$pld"
+       if [ ! -d "$pld" ]; then
+               mkdir -m 0755 -p "$pld"
+               chown $USER:$GROUP $pld
+       fi
 
        lport=$(grep ^port "$CONFIGFILE" | cut -d "\"" -f 2)
        [ -z "$lport" ] && lport=6600
@@ -24,6 +30,8 @@ start_service() {
        procd_open_instance
        procd_add_mdns "mpd" "tcp" "$lport"
        procd_set_param command "$PROG" --no-daemon "$CONFIGFILE"
+       procd_set_param user "$USER"
+       procd_set_param group "$GROUP"
        procd_set_param stderr 1
        # Give MPD some real-time priority
        procd_set_param nice "$NICEPRIO"