Qual é a diferença entre sudo su - e sudo su -

22

Quando estou trabalhando em nossas máquinas RHEL, costumo sudo su -mudar para raiz. Um dia, um erro de digitação significava que eu digitava sudo su --- parece-me que tudo estava igual a um único hífen, exceto que eu estava na mesma pasta que antes de emitir o comando (com um único hífen /root).

Existem outras diferenças? É seguro usá-lo em cenários em que sei que quero trabalhar no mesmo diretório?

Rico
fonte

Respostas:

22

Quando você fornece um hífen duplo, a experiência que você terá é idêntica a se você tivesse acabado de executar sudo susem hífen.

Passar um único hífen é idêntico a passar -lou --login. A página do manual sudescreve o comportamento como:

Forneça um ambiente semelhante ao que o usuário esperaria se o usuário efetuasse login diretamente.

Isso inclui definir seu diretório como seu diretório inicial e definir várias outras variáveis ​​de ambiente.

Passar um hífen duplo para um comando geralmente é usado para marcar o final dos sinalizadores da linha de comando e o início dos argumentos que não são sinalizadores. Por exemplo, se você executar, touch -Rreceberá um erro dizendo que -R não é uma opção touch, mas se você executá- touch -- -Rlo, criará um arquivo chamado -R. Isso é verdade para muitas ferramentas de linha de comando ( ls -Rfará uma recursiva lsenquanto ls -- -Rexecutará uma lsem um arquivo ou diretório chamado -R.

Então, para finalizar, quando você passa apenas -- para suele, basicamente ignora --e age como se você não tivesse aprovado nenhuma opção.

Mark Drago
fonte
Vou criar uma pergunta a partir dela, mas sudo su -e sudo su -ldifere. Em uma conta na qual eu permito com apenas uma chave e tenho direitos sudo para mudar para outro usuário específico, sudo su -mude o usuário sem problemas, mas sudo su -lou sudo su --loginsolicitarei uma senha sudo, a qual não tenho (embora examinando sudo -lI pode executar /bin/sucom NOPASSWD)
karatedog 14/06
@karatedog, parece que você não criou uma pergunta ....
Wildcard