Se você iniciar seu script com permissões de root, mas precisar executar determinados comandos como um usuário não raiz específico, poderá usar sudo
com a opção -u
para executar um único comando com, por exemplo.
sudo -u USERNAME whoami # outputs USERNAME's user name
ou inicie um subshell e execute seus comandos nele, por exemplo:
sudo -u USERNAME bash -c 'whoami;echo $USER' # outputs USERNAME's user name twice
A linha em seu script não falha na verdade, você apenas executa bash
como usuário meteor
, e como bash
não tem nada para fazer, apenas sai e o shell raiz original executa o restante do script . O que você realmente quer fazer (suponho) é:
…
echo "Trying sudo -u meteor bash"
sudo -u meteor bash -c '\
echo "$ whoami" && whoami && echo "^^^^^^ meteor expected"
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh |\
bash
'
echo "ls -al /home/meteor/.nvm # should be populated"
…
Outra maneira de alcançar o mesmo é um documento aqui :
…
echo "Trying sudo -u meteor bash"
sudo -u meteor bash <<EOF
echo "$ whoami" && whoami && echo "^^^^^^ meteor expected"
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh |\
bash
EOF
echo "ls -al /home/meteor/.nvm # should be populated"
…