PDA

Visualizza la versione completa : [slack] creare script shell per eseguire processo come altro utente


marketto
12-01-2005, 18:50
ciao a tutti, devo creare uno script per eseguire in sequenza questi comandi:


rm /tmp/xmms_marketto.0
rm /tmp/xmms_root.0
su marketto
noxmms /lista.m3u &
exit
ln -s /tmp/xmms_marketto.0 /tmp/xmms_root.0



ho creato un file rc.xmms:


#!/bin/sh
rm /tmp/xmms_marketto.0
rm /tmp/xmms_root.0
su marketto
noxmms /lista.m3u &
exit
ln -s /tmp/xmms_marketto.0 /tmp/xmms_root.0

x nn funziona :stordita:

come posso fare?? vorrei poter eseguire noxmms come utente marketto..



:ciauz:

marketto
12-01-2005, 23:52
ho impostato come proprietario del file noxmms l'utente marketto, ed inoltre ho settato il SUID per noxmms, x viene eseguito lo stesso come root quando lo eseguo da root.

:stordita: :stordita:

chaosd
13-01-2005, 08:32
ma non basta dare come owner root e come gruppo ad es users, e marketto deve fare parte del gruppo users, poi se ti logghi come marketto e fai partire l'eseguibile dovrebbe fare quello che dici tu

marketto
13-01-2005, 10:16
si, cos funziona, x non quello che serve a me :stordita:


devo eseguire quel programma con lo stesso utente con cui eseguo il webserver apache.
ora apache viene eseguito come utente marketto, di conseguenza devo poter avviare anche noxmms come utente marketto. la procedura deve essere del tutto automatica, ovvero inserita dentro un script shell da eseguire all'avvio della macchina.

:bh:

marketto
13-01-2005, 13:29
ho risolto :unz:

lupix
13-01-2005, 13:35
Postare la risposta no eh?? :)

marketto
13-01-2005, 13:42
Originariamente inviato da lupix
Postare la risposta no eh?? :)
certo, ora arriva...

il webserver parte come nobody, nell'rc.local ho messo il link a questo script:


# /usr/bin/start_noxmms
TMPDIR=/tmp;export TMPDIR
TMP=/tmp;export TMP
if [ -e /tmp/xmms_root.0 ]; then
rm /tmp/xmms_root.0
fi
if [ -e /tmp/xmms_nobody.0 ]; then
rm /tmp/xmms_nobody.0
fi
/usr/local/bin/noxmms /lista.m3u &
sleep 1
chown nobody.nobody /tmp/xmms_root.0
chmod 777 /tmp/xmms_root.0
if [ -z /tmp/xmms_nobody.0 ]; then
ln -s /tmp/xmms_root.0 /tmp/xmms_nobody.0
fi
chown nobody.nobody /tmp/xmms_nobody.0
chmod 777 /tmp/xmms_nobody.0


ho scoperto quindi che per funzionare nn occorre far partire noxmms dall'utente del webserver, ma bens sistemare il proprietario del link simbolico.

ora, tramite una semplice interfaccia in PHP, riesco a controllare la riproduzione degli mp3 sul server locale...

link:
noxmms: http://xmmsd.sourceforge.net/noxmms/
xmms-shell: http://freshmeat.net/projects/xmms-shell/
piccola documentazione: http://www.draconidigital.com/da/manual.html


:ciauz:

Loading