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 hífen.
Passar um único hífen é idêntico a passar -l
ou --login
. A página do manual su
descreve 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 -R
receberá um erro dizendo que -R não é uma opção touch
, mas se você executá- touch -- -R
lo, criará um arquivo chamado -R
. Isso é verdade para muitas ferramentas de linha de comando ( ls -R
fará uma recursiva ls
enquanto ls -- -R
executará uma ls
em um arquivo ou diretório chamado -R
.
Então, para finalizar, quando você passa apenas --
para su
ele, basicamente ignora --
e age como se você não tivesse aprovado nenhuma opção.
sudo su -
esudo su -l
difere. 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, massudo su -l
ousudo su --login
solicitarei uma senha sudo, a qual não tenho (embora examinandosudo -l
I pode executar/bin/su
com NOPASSWD)