Pregunta:
Ya lo leí del manual pero no veo la diferencia.
su
– cambia el ID de usuario o conviértete en superusuario
sudo -s [command]
La opción -s
(shell) ejecuta el shell especificado por la variable de entorno SHELL si está configurada o el shell como se especifica en passwd (5). Si se especifica un comando, se pasa al shell para su ejecución. De lo contrario, se ejecuta un shell interactivo.
sudo -i
desaparece la descripción en el manual
Respuesta:
La principal diferencia entre estos comandos es 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 de destino . Entonces, para convertirse en root, necesita conocer la contraseña de root. Si hay varios usuarios en su máquina que necesitan ejecutar comandos como root, todos necesitan saber 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 comunicársela solo a aquellas personas que necesitan mantener el acceso, desordenado.
sudo
(hmm … ¿cuál es el mnemónico? ¿Superusuario-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 asegurarse de que la persona en el terminal es realmente el mismo "joe" que aparece en /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 aparece 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 usuario root
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 combinación sudo su
uso frecuente funciona de la siguiente manera: primero sudo
le pide su contraseña y, si tiene permiso para 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 de destino. Por lo tanto, sudo su
permite abrir un shell como otro usuario (incluido el root), si el /etc/sudoers
le permite el acceso de superusuario.