La principal diferencia entre estos comandos está en la forma en que restringen el acceso a sus funciones.
su
(que significa "usuario sustituto" o "cambiar de usuario") : hace exactamente eso, inicia otra instancia de shell con privilegios del usuario objetivo. Para asegurarse de que tiene los derechos para hacerlo, le solicita la contraseña del usuario objetivo . Entonces, para convertirse en root, necesita saber la contraseña de root. Si hay varios usuarios en su máquina que necesitan ejecutar comandos como root, todos deben conocer la contraseña de root; tenga en cuenta que será la misma contraseña. Si necesita revocar los permisos de administrador de uno de los usuarios, debe cambiar la contraseña de root y decírselo solo a aquellas personas que necesitan mantener el acceso: desordenado.
sudo
(hmm ... ¿cuál es el mnemónico? ¿Super-User-DO?) es completamente diferente. Utiliza un archivo de configuración (/ etc / sudoers) que enumera qué usuarios tienen derechos para acciones específicas (ejecutar comandos como root, etc.) Cuando se invoca, solicita la contraseña del usuario que lo inició , para garantizar la persona en el terminal es realmente el mismo "Joe" que aparece en la lista /etc/sudoers
. Para revocar los privilegios de administrador de una persona, solo necesita editar el archivo de configuración (o eliminar al usuario de un grupo que figura en esa configuración). Esto da como resultado una gestión de privilegios mucho más limpia.
Como resultado de esto, en muchos sistemas basados en Debian, el root
usuario no tiene una contraseña establecida, es decir, no es posible iniciar sesión como root directamente.
Además, /etc/sudoers
permite especificar algunas opciones adicionales, es decir, el usuario X solo puede ejecutar el programa Y, etc.
La sudo su
combinación de uso frecuente funciona de la siguiente manera: primero sudo
le pide su contraseña y, si se le permite hacerlo, invoca el siguiente comando ( su
) como superusuario. Debido a que su
es invocado por root
, no requiere que ingrese la contraseña del usuario objetivo. Por lo tanto, le sudo su
permite abrir un shell como otro usuario (incluida la raíz), si el /etc/sudoers
archivo le permite el acceso de superusuario .
su user
para iniciar sesión desde shells no confiables, perosu - user
. Ver unix.stackexchange.com/q/7013/8250