Como chamar um script bash de outro script, como um usuário diferente? [duplicado]

1

Ao escrever scripts para automatizar a inicialização de repositórios de espelho SVN ( svnsync ), eu novamente tive problemas ao tentar iniciar outro script com privilégios de outro usuário .

#!/bin/sh
# This outer script is always run with root privileges ("sudo create-repo.sh")

# Create repository, set privileges, etc
[...]

# Set up remote mirror; this works fine! (SSH key authentication)
ssh svnsync@anotherserver /var/lib/svn/init-mirror.sh $REPO

# Set up local mirror as "svnsync" user
# ???

Como posso chamar o outro script, na mesma máquina, como um usuário diferente? Observe que o script externo é sempre executado como root, então su 'ing como qualquer usuário não deve ser um problema.

Eu tentei algo como:

su svnsync; /path/to/init-mirror.sh $REPO; exit

e obtenha resultados estranhos. Como você deve fazer isso? Quando é tão fácil remotamente, provavelmente é possível localmente, certo? (Por enquanto, vamos fingir que executamos o script externo, já que o mesmo usuário "svnsync" não é uma opção).

Acho que o título da pergunta é uma droga, então, por favor, ajude-me a reformulá-lo, se puder.

    
por Jonik 14.01.2010 / 16:02

1 resposta

1

Duplicado de Executar um script de shell como um usuário diferente . Eu acho que você pode fechar sozinho?

    
por 14.01.2010 / 16:19