Duplicado de Executar um script de shell como um usuário diferente . Eu acho que você pode fechar sozinho?
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.
Duplicado de Executar um script de shell como um usuário diferente . Eu acho que você pode fechar sozinho?