Page 1 of 1

Script automático con usuario Zimbra

Posted: Wed Sep 12, 2018 8:17 pm
by chelinux
Saludos amigos estoy creando un script que debe ejecutarse como usuario zimbra el problema es que no logro hacer que en el script ejecute su - zimbra y luego si inicie la secuencia de ordenes, tengo el script y me toca correrlo manualmente porque debe ser ejecutado con usuario zimbra.

Gracias a todos

Re: Script automático con usuario Zimbra

Posted: Wed Sep 12, 2018 9:54 pm
by pup_seba
Hola,

Prueba con:
$ su - zimbra -c 'comando que quieras'

Re: Script automático con usuario Zimbra

Posted: Wed Sep 12, 2018 9:59 pm
by chelinux
Gracias el.problema es que hay un for antes del comando que deseo ejecutar

Re: Script automático con usuario Zimbra

Posted: Thu Sep 13, 2018 6:30 am
by pup_seba
Igual si compartes el script es más fácil de entender porque no veo dónde está el problema. Un "for" no hace que cambie la sintaxis del "su". Suponiendo que uses bash sería por ejemplo así:

$ for i in ls ; do su - zimbra -c "comando que quieras de zimbra" ; done

Haciéndolo así hasta carga las variables de entorno del usuario zimbra que se aplican durante la ejecución (cosa que no pasa por ejemplo con el become_user en ansible).

Re: Script automático con usuario Zimbra

Posted: Thu Sep 13, 2018 1:10 pm
by chelinux
Gracias aquí el script

#!/bin/bash
if [ $USER = 'zimbra' ]; then
for i in `zmprov -l gaa`
do
echo ;
echo Preparando la cuenta $i para ser copiada ...;
mb_size=`zmmailbox -z -m $i gms`;
echo Tamano de la cuenta: $mb_size ...;
echo Iniciamos a copiar la cuenta $i ...;
zmmailbox -z -m $i getRestURL "//?fmt=tgz" > /home/backupzimbra/$i.tgz
echo Cuenta $i copiada exitosamente!;
done

echo Fin del script.;
else
echo Ejecute este script como usuario zimbra.

Re: Script automático con usuario Zimbra

Posted: Thu Sep 13, 2018 3:50 pm
by pup_seba
Suponiendo que ese script que me pasas se llame "backup_mailboxes.sh", lo que se me ocurre es que tengas otro script que lo llame, por ejemplo:
lanza_backup.sh:

#!/bin/bash

su - zimbra -c './lanza_backup.sh'

Te serviría eso? Incluso si te quieres poner fino puedes ponerle un "whoami" al principio por si quieres asegurarte que se lance como root para que pueda hacer el "su - zimbra" sin problemas o puedas hacer otras cosas que requieran más permisos que los del usuario zimbra. "lanza_backup.sh" quedaría así:
#!/bin/bash

if [ "$EUID" -ne 0 ]
then echo "Ejecutar como root"
exit
fi

su - zimbra -c './lanza_backup.sh'

Saludos,

{Solucionado} Re: Script automático con usuario Zimbra

Posted: Thu Sep 13, 2018 7:06 pm
by chelinux
Muchas gracias funciono a la perfección.