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

20

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

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

    
por Rich 15.06.2011 / 14:22

1 resposta

22

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

Passar um único hífen é idêntico a passar -l ou --login . A man page para su descreve o comportamento como:

Provide an environment similar to what the user would expect had the user logged in directly.

Isso inclui configurar seu diretório para seu diretório pessoal e configurar várias outras variáveis de ambiente.

Passar um hífen duplo para um comando é normalmente usado para marcar o fim dos sinalizadores de linha de comando e o início dos argumentos sem sinalizador. Por exemplo, se você executar touch -R , receberá um erro dizendo que -R não é uma opção para touch , mas se você executar touch -- -R , criará um arquivo chamado -R . Isso se aplica a muitas ferramentas de linha de comando ( ls -R fará um ls recursivo, enquanto ls -- -R executará ls em um arquivo ou diretório denominado -R .

Então, para finalizar, quando você passa somente -- para su , é basicamente ignorar -- e agir como se você não tivesse passado nenhuma opção.

    
por 15.06.2011 / 14:53

Tags