Terminal: ¿iniciar sesión(1) o su(1)?

Terminal: ¿iniciar sesión(1) o su(1)?

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

logininicia un shell con un entorno nuevo, descartando el actual.

suinicia 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 -les 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.

información relacionada