Cuando proporcionas un guión doble, la experiencia que tendrás es idéntica a la que acabas de ejecutar sudo su
sin ningún guión.
Pasar un solo guión es idéntico a pasar -l
o --login
. La página del manual su
describe el comportamiento como:
Proporcione un entorno similar al que el usuario esperaría si el usuario hubiera iniciado sesión directamente.
Esto incluye configurar su directorio en su directorio de inicio y establecer un montón de otras variables de entorno.
Pasar un guión doble a un comando generalmente se usa para marcar el final de las banderas de línea de comandos y el comienzo de los argumentos que no son de bandera. Por ejemplo, si ejecuta touch -R
, recibirá un error que dice que -R no es una opción touch
, pero si lo ejecuta touch -- -R
creará un archivo llamado -R
. Esto es cierto para muchas herramientas de línea de comandos ( ls -R
hará un recursivo ls
mientras ls -- -R
que realizará un ls
en un archivo o directorio llamado -R
.
Entonces, para terminar, cuando pasas solo --
a su
él, básicamente ignoras --
y actúas como si no pasaras ninguna opción.
sudo su -
, ysudo su -l
es diferente. En una cuenta en la que ssh en sólo una tecla, y tengo derechos sudo para el cambio a un otro usuario específico,sudo su -
cambia el usuario sin problemas, perosudo su -l
osudo su --login
se pida una contraseña de sudo, que no tengo (aunque mediante el examen desudo -l
lo podría ejecutar/bin/su
con NOPASSWD)