Script automático con usuario Zimbra

Post Reply
chelinux
Posts: 29
Joined: Sat Jul 15, 2017 5:02 pm

Script automático con usuario Zimbra

Post 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
User avatar
pup_seba
Outstanding Member
Outstanding Member
Posts: 687
Joined: Sat Sep 13, 2014 2:43 am
Location: Tarragona - Spain
Contact:

Re: Script automático con usuario Zimbra

Post by pup_seba »

Hola,

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

Re: Script automático con usuario Zimbra

Post by chelinux »

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

Re: Script automático con usuario Zimbra

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

Re: Script automático con usuario Zimbra

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

Re: Script automático con usuario Zimbra

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

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

Post by chelinux »

Muchas gracias funciono a la perfección.
Post Reply