Execute o script bash com sudo, alguns comandos como usuário normal

1

Eu tenho o script abaixo, ele deve ser executado com o sudo, mas o primeiro para os comandos (os comandos do git) precisam ser executados como o usuário "ubuntu"

sudo -u ubuntu "git -C linux/build-repo pull"
sudo -u ubuntu "git -C android/build-repo pull"

uoa_image=$(sh linux/build-repo/make.sh | sed -n '1 p')

echo $uoa_image

No entanto, quando isso é executado com o sudo, os dois primeiros comandos falham e o script make.sh quando executado reclama que ele não tem raiz

As primeiras linhas apresentam os erros:

sudo: git -C linux/build-repo pull: command not found
sudo: git -C android/build-repo pull: command not found 
    
por Zac Powell 28.09.2015 / 22:11

2 respostas

2

Uma opção:

Execute o script inteiro como sudo-to-root e altere as duas primeiras linhas para usar su :

su -c "git -C linux/build-repo pull" ubuntu
su -c "git -C android/build-repo pull" ubuntu
...

Uma segunda opção:

configure o PATH do root para que ele possa encontrar o comando git .

    
por 28.09.2015 / 22:25
3

As mensagens de erro são por causa das citações: você precisa

sudo -u ubuntu git -C linux/build-repo pull

não

sudo -u ubuntu "git -C linux/build-repo pull"
    
por 28.09.2015 / 23:58

Tags