Script automático con usuario Zimbra

chelinux
Posts: 13
Joined: Sat Jul 15, 2017 5:02 pm

Script automático con usuario Zimbra

Postby chelinux » Wed Sep 12, 2018 8:17 pm

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


pup_seba
Outstanding Member
Outstanding Member
Posts: 406
Joined: Sat Sep 13, 2014 2:43 am
Location: Tarragona - Spain

Re: Script automático con usuario Zimbra

Postby pup_seba » Wed Sep 12, 2018 9:54 pm

Hola,

Prueba con:
$ su - zimbra -c 'comando que quieras'
chelinux
Posts: 13
Joined: Sat Jul 15, 2017 5:02 pm

Re: Script automático con usuario Zimbra

Postby chelinux » Wed Sep 12, 2018 9:59 pm

Gracias el.problema es que hay un for antes del comando que deseo ejecutar
pup_seba
Outstanding Member
Outstanding Member
Posts: 406
Joined: Sat Sep 13, 2014 2:43 am
Location: Tarragona - Spain

Re: Script automático con usuario Zimbra

Postby pup_seba » Thu Sep 13, 2018 6:30 am

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).
chelinux
Posts: 13
Joined: Sat Jul 15, 2017 5:02 pm

Re: Script automático con usuario Zimbra

Postby chelinux » Thu Sep 13, 2018 1:10 pm

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.
pup_seba
Outstanding Member
Outstanding Member
Posts: 406
Joined: Sat Sep 13, 2014 2:43 am
Location: Tarragona - Spain

Re: Script automático con usuario Zimbra

Postby pup_seba » Thu Sep 13, 2018 3:50 pm

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,
chelinux
Posts: 13
Joined: Sat Jul 15, 2017 5:02 pm

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

Postby chelinux » Thu Sep 13, 2018 7:06 pm

Muchas gracias funciono a la perfección.

Return to “Spanish”

Who is online

Users browsing this forum: No registered users and 2 guests