cual es eldistinciónentre:
sudo su -
y
su -i
¿Y dónde sería preferible uno sobre el otro?
-, -l, --login Start the shell as a login shell with an environment similar to a real login: o clears all the environment variables except TERM and variables specified by --whitelist-environment o initializes the environment variables HOME, SHELL, USER, LOGNAME, and PATH o changes to the target user's home directory o sets argv[0] of the shell to '-' in order to make the shell a login shell
y
su - run a command with substitute user and group ID
extractos de la man su
página.
Respuesta1
No hay ningún -i
argumento para el su
comando, por lo que la diferencia sería que uno funciona y el otro no.
Si quería decir su -l
, todavía no funciona de forma predeterminada en una caja de Ubuntu ya que la root
cuenta está bloqueada y no hay contraseña para ingresar.
No hay diferencia entre los argumentos -
y -l
. Ambas son variaciones de la misma opción. De hecho, incluiste la línea de la man
página que nos dice eso en tu pregunta.
La diferencia entre usar el argumento -
, -l
o --login
(todos son iguales) y no usar ningún argumento se explica principalmente en el extracto que incluiste en tu publicación. Esta parte dice lo que hace sin el argumento:
For backward compatibility, su defaults to not change the current directory and to only set the environment variables HOME and SHELL (plus USER and LOG‐
NAME if the target user is not root). It is recommended to always use the --login option (instead of its shortcut -) to avoid side effects caused by
mixing environments.
Tenga en cuenta que su
no es sólo para root
. No representasuperusuariocomo lo hace con el sudo
comentario. Lo que representausuario sustitutoy puede especificar el usuario que desea usar como argumento para ejecutar un comando como ese usuario