Estou usando o ubuntu 10.04.
Percebo que depois de executar " sudo -s " no terminal, o prompt mudou de
" XXX @ XXX "
para
" root @ XXX ",
parece que mudou para privilégio de root.
Mas quando verifico a documentação do comando "sudo" aqui , ele explica outra história de "sudo -s", alguém pode me explicar o que exatamente " sudo -s " está fazendo?
sudo
é específico Ubuntu-mal ...Respostas:
Os dois não são realmente inconsistentes - o
sudo
comando sempre altera o usuário, para root ou para o usuário que você especificar com a-u
opção. Tudo o que-s
faz é fornecer um atalho para iniciar um shell como esse usuário. É realmente equivalente a:exceto que provavelmente irá recuar para
/bin/sh
ou algo assim, seSHELL
não estiver definido.fonte
sudo -s
executa o shell especificado na$SHELL
variável de ambiente como superusuário / raiz. Você pode especificar outro usuário usando-u
.A
$SHELL
variável de ambiente contém o caminho para o shell de login padrão do usuário. A configuração real para o programa shell padrão geralmente está emetc/passwd
. Dependendo do que você fez na sua sessão atual, a variável $ SHELL pode não conter o programa shell que você está usando no momento. Se você fizer login automaticamente com o zsh, por exemplo, mas invocar o bash, $ SHELL não será alterado/bin/zsh
.Mostre o usuário atual e o programa de shell:
echo $(whoami) is logged in and shell is $0
whoami
imprime o nome de usuário em que o usuário está trabalhando.$0
contém o nome / caminho do programa em execução no momento (neste caso, o programa shell).fonte
Do manual:
Mais seriamente, o sudo -s executa uma variável de ambiente shell. Como você não adicionou nenhuma variável, ela é executada conforme especificado no passwd e, portanto, conecta você como root.
fonte
-u
opção para aprender isso. Mas para alguém que não está familiarizadosudo
, eles não saberiam olhar-u
.Dê uma olhada nesta postagem do superusuário:
Qual é a diferença entre os comandos "su -s" e "sudo -s"?
A propósito, sua postagem deve ser movida para superusuário (ou askubuntu, como dito nos comentários)!
fonte
Parece que está criando outra instância do shell em cima do shell atual, mas com privilégios de root. Aposto que depois de fazer isso,
sudo -s
se você digitar exit, retornará ao shell original.fonte
sudo -s permite executar um comando para o qual você está pré-autorizado [consulte / etc / sudoers], possivelmente solicitando que você confirme seu ID atual.
fonte