Qual é a diferença entre 'sudo [command]' e 'sudo sh [command]?

8

Estou tentando instalar o VMware Workstation no meu Ubuntu 12.04.2 LTS. Se eu executar o seguinte comando:

sudo ./VMware-Workstation-9.0.1-894247.x86_64.bundle

termina de uma vez e a instalação nunca inicia.

Se eu executar este comando:

sudo sh ./VMware-Workstation-9.0.1-894247.x86_64.bundle

O instalador pode ser iniciado com sucesso.

Por que isso faz diferença?

    
por Landy 11.04.2013 / 10:35

2 respostas

9

Se o arquivo não estiver marcado como executável, você precisará chamar um interpretador de shell de comando para executá-lo.

Exemplos:

  • sudo sh foo abrirá foo com sh usando privilégios sudo .

  • sudo bash foo abrirá foo com bash usando privilégios sudo .

  • sh foo será aberto foo com sh usando os privilégios do usuário.

  • bash foo será aberto foo com bash usando os privilégios do usuário.

Se você marcar um arquivo como executável, basta chamá-lo com ./foo e, por estar marcado como tal, ele será lido com o interpretador de shell de comando definido e executado sem a necessidade de definir um.

ls -F listará arquivos e marcará executáveis com * .

Para ativar o bit de execução em um arquivo (e torná-lo executável como tal), use o comando chmod +x foo .

No seu caso para tornar o arquivo que você está usando executável, você usaria o comando

chmod +x VMware-Workstation-9.0.1-894247.x86_64.bundle

e então você poderá executá-lo com

sudo sh ./VMware-Workstation-9.0.1-894247.x86_64.bundle ou apenas escrevendo sudo ./VMware-Workstation-9.0.1-894247.x86_64.bundle .

    
por Bruno Pereira 11.04.2013 / 12:24
6

Sh é um shell para executar comandos, então executar sh com sudo lhe dá um shell de root. Isso significa que todos os comandos nesse shell são executados como root. Meu palpite é que o script executa algo mais que precisa de root, no entanto quando você usa apenas sudo não sudo sh, que alguma outra coisa é executada como um usuário normal, no entanto, com sh tudo será executado como root.

    
por w4etwetewtwet 11.04.2013 / 10:44

Tags