O que exatamente faz o comando sudo -s? e como é usado neste exemplo?

2

Eu tenho a seguinte dúvida. Em um tutorial relacionado a uma instalação de software que estou seguindo, digo que preciso executar os seguintes comandos (estou fazendo isso em um shell ssh , portanto, essa lista de etapas termina com a saída Comando ):

sudo -s
apt-get update
apt-get install -y build-essential libtool libcurl4-openssl-dev libncurses5-dev libudev-dev autoconf automake screen
exit

Minhas dúvidas são:

O que exatamente faz o parâmetro -s após o comando sudo ?

Pesquisando na web, descobri que:

‑s [command] The ‑s (shell) option runs the shell specified by the SHELL environment variable if it is set or the shell as specified in the password database. If a command is specified, it is passed to the shell for execution via the shell's ‑c option. If no command is specified, an interactive shell is executed

Parece-me que o sudo -s executa um comando usando a variável de ambiente do shell.

Mas isso não está claro para mim: neste caso, qual é o comando executado com a variável de ambiente? (só executa sudo -s e não ** sudo -s [comando]).

Você pode me explicar exatamente o que faz?

Tnx

    
por AndreaNobili 03.06.2014 / 23:41

3 respostas

3

Citando a página man, a opção -s executa o shell especificado pela variável de ambiente SHELL. Então, se

echo $SHELL
/bin/bash

está definido sudo -s seria equivalente a correr

sudo -Eu root  /bin/bash

isto é, executando o shell / bin / bash como usuário root, preservando as variáveis de ambiente.

    
por 03.06.2014 / 23:50
1

Sem a opção, é basicamente equivalente a sudo -s $SHELL . Onde $ SHELL é tipicamente o caminho para o seu shell atual. No Linux isso é normalmente /bin/bash , mas também pode ser uma das muitas outras shells.

    
por 03.06.2014 / 23:44
1

sudo -s iniciará o shell definido (pela variável de ambiente SHELL ) com privilégios elevados.

Geralmente, isso pode ser semelhante a executar sudo bash , oferecendo um shell no qual você pode atuar como root.

Se você também fornecer um comando após sudo -s , o comando será executado nesse shell elevado.

    
por 03.06.2014 / 23:45