Re: Ejecutar aplicacion como usuarios
El jue, 14-12-2006 a las 03:21 +0100, Javier Terceiro escribió:
> Hola lista.
>
> Tengo una duda que no soy capaz de resolver de manera eficiente y es
> la siguiente. Tengo un programa que ejecuto como root y todo va
> perfecto. Dicho programa también lo puedo ejecutar como usuario normal
> sin problema, pero de ambas maneras lo hago desde una consola, es
> decir ./mi_programa &, para simplificar.
>
> Lo que necesito conseguir es que dicho programa cuando el sistema se
> inicia, se ejecute como unos determinados usuarios y con sus
> configuraciones predeterminadas, es decir, tengo el programa
> "mi_programa" que lo ejecuta el usuario "a" y al mismo tiempo otra
> copia de dicho programa debe de estarse a ejecutar por el usuario "b",
> "c" y "d", por ejemplo. Y todo esto desde que el sistema se inicia.
>
> La manera que encontré rápida es la siguiente, una copia del programa
> está en /home/a, /home/b, /home/c y /home/d, y desde un script lo
> inicializo como algo así:
>
> #!/bin/bash
> case $1 in
> start)
> /home/a/mi_programa [parametros]
> /home/b/mi_programa [parametros]
> /home/c/mi_programa [parametros]
> /home/d/mi_programa [parametros]
> *) echo "fail"
>
> El fallo es que así lo estoy a ejecutar como root y no como usuario
> normal. Hay que decir que no se puede ejecutar la aplicación cuando un
> usuario accede al sistema, pues es un servicio de red y el usuario no
> se conecta, simplemente el servidor arranca y lo inicializa.
>
> ¿Alguna idea de como lanzar la aplicación como usuario normal?
También puedes utilizar su:
for i in `cat /etc/passwd | grep bash | \
gawk -F: '{ print $1 }' | \
grep -v root`
do
[ -x /home/"$i"/fichero.sh ] && su -c "/home/"$i"/fichero.sh &" $i
done
Esto lo lanza para todos los usuarios, menos root, y lanzado desde sus
home (si existe y es ejecutable), dejando el proceso en segundo plano y
como dicho usuario.
Saludos
Reply to: