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.