Estoy en OSX. Puede usar ambosiniciar sesión(1)osu(1)para iniciar sesión como cualquier usuario.
Pero, ¿dos binarios para hacer el mismo trabajo?
cual consume menoslos recursos del sistema?
¿Cuál es menos propenso ariesgos de seguridad?
Cualdiferencias bajo el capó?
[Nota: no me importa obtener acceso de root. Solo planeo automatizar el acceso a cuentas en un *nix multiusuario en red. ]
Respuesta1
login
inicia un shell con un entorno nuevo, descartando el actual.
su
inicia un shell utilizando el entorno existente y modifica sólo las variables HOME, USER y SHELL.
Por ejemplo,
> export foo=bar
> su <username>
> echo $foo
bar
pero:
> export foo=bar
> login <username>
> echo $foo
no imprime nada.
AFAIK, su -l
es equivalente a login
.
Respuesta2
su(1) creará un nuevo shell con el entorno actual y, una vez que salga del subshell, volverá al shell que lo invocó.
login(1) también creará un nuevo shell pero con un entorno nuevo.
Respuesta3
No es exactamente el mismo trabajo. "su" simplemente cambia el usuario propietario del terminal actual, "iniciar sesión" (como dice el nombre) crea una nueva sesión.
No soy un experto en OSX, pero en todos los *NIX una consideración de seguridad importante es prohibir el inicio de sesión remoto directo al root. Sólo debe hacerse mediante "su" después de iniciar sesión como usuario normal.