[Initng-svn] r2933 - initng/initfiles/daemon
svn at initng.thinktux.net
svn at initng.thinktux.net
Fri Feb 3 02:34:25 CET 2006
Author: deac
Date: Fri Feb 3 02:34:25 2006
New Revision: 2933
Modified:
initng/initfiles/daemon/vdr.ii
Log:
vdr: pure sh-code instead suid-/env(_file)-plugins, which does not works at the moment.
Modified: initng/initfiles/daemon/vdr.ii
==============================================================================
--- initng/initfiles/daemon/vdr.ii (original)
+++ initng/initfiles/daemon/vdr.ii Fri Feb 3 02:34:25 2006
@@ -1,25 +1,45 @@
daemon daemon/vdr {
need = system/bootmisc;
use = daemon/lircd;
- env LOGNAME=vdr;
- env USER=vdr;
- env GROUP=video;
- env HOME=/var/vdr;
- env LANG=de_DE;
- env EPGFILE=${HOME}/epg.data;
- env SVDRP_PORT=2001;
- env VDR_EXTRA_OPTIONS=;
- env_file = /etc/conf.d/vdr;
- suid = ${USER};
- sgid = ${GROUP};
- chdir = ${HOME};
respawn;
stdall = /var/log/vdr.log;
script daemon = {
+ q() {
+ echo "'\''${*}'\''"
+ }
+ LOGNAME=vdr
+ USER=vdr
+ GROUP=video
+ HOME=/var/vdr
+ LANG=de_DE
+ EPGFILE=${HOME}/epg.data
+ CONFIG=/etc/vdr
+ SVDRP_PORT=2001
+ VDR_EXTRA_OPTIONS=
+ . /etc/conf.d/vdr
for plugin in ${PLUGINS}
do
- eval plugins=\"\${plugins} --plugin=\'${plugin} \${plugin_${plugin}}\'\"
+ # no joke!
+ eval "plugins=\"\${plugins} --plugin=$(q "\${plugin} \${plugin_${plugin}}")\""
done
- eval exec @/usr/bin/vdr@ --config="'${CONFIG}'" --video="'${HOME}'" --epgfile="'${EPGFILE}'" --port="'${SVDRP_PORT}'" ${VDR_EXTRA_OPTIONS} ${plugins}
+ cd "${HOME}"
+ export LOGNAME USER GROUP HOME LANG
+ # why too complicated? su has a new environment,
+ # HOME for example is definitiv an other value.
+ # so we replace first all vars via eval and then we enter su.
+ # no variable should be replaced!
+ eval "exec @/bin/su@ '${USER}' -c ' \
+ HOME=$(q "${HOME}") \
+ LANG=$(q "${LANG}") \
+ USER=$(q "${USER}") \
+ GROUP=$(q "${GROUP}") \
+ LOGNAME=$(q "${LOGNAME}") \
+ @/usr/bin/vdr@ \
+ --config=$(q "${CONFIG}") \
+ --video=$(q "${HOME}") \
+ --epgfile=$(q "${EPGFILE}") \
+ --port=$(q "${SVDRP_PORT}") \
+ ${VDR_EXTRA_OPTIONS} \
+ ${plugins}'"
};
}
More information about the Initng-svn
mailing list