Como canalizar para bash como um usuário diferente

2

Estou executando um experimento como uma maneira de resolver um problema maior. Para o experimento, preciso instalar o rvm como um usuário que não possui um shell.

Para instalar o rvm, use o seguinte comando

\curl -L https://get.rvm.io | bash

Como eu executaria o seguinte comando como um usuário diferente?

Isso é o que estou tentando fazer, mas não funciona.

sudo -u foo -H \curl -L https://get.rvm.io | bash 
sudo -u foo -H which rvm  
sudo: rvm: command not found
    
por spuder 20.09.2013 / 06:19

1 resposta

8

Você precisa executar o shell como o usuário, não o comando curl ou which .

Existem várias maneiras de fazer isso, incluindo:

sudo -u user bash -c 'curl -L https://get.rvm.io | bash'

e

curl -L https://get.rvm.io | sudo -u user bash

Se você quiser fazer isso de forma interativa, use a opção sudo de -s para substituir o fato de que eles não têm um shell válido. Por exemplo:

# sudo -u user -s /bin/bash
$ whoami
user
$ exit
    
por 20.09.2013 / 07:07