lunes, 6 de noviembre de 2023

05 - Sudo, Su y Sudo su

Superusuario o root

Los sistemas operativos GNU/Linux se caracterizan por tener un usuario con permisos totales sobre el sistema y tradicionalmente se le llama root ó superusuario. Su carpeta personal se encuentra en /root

En Ubuntu, la cuenta del superusuario o root viene desactivada por defecto, por seguridad. Es una protección por defecto contra posibles destrozos accidentales.

Sudo

Sudo permite a los usuarios ejecutar comandos como si fuera el root, pero solo a ciertos usuarios "especiales". Estos usuarios se denominan sudoers (los que pueden hacer sudo). Como es de imaginar, el usuario que instala el sistema es un sudoer.

/etc/sudoers

Es el fichero que contiene los usuarios que pueden realizar sudo, en particular el usuario que instala el SO pertenece al grupo sudo y este a su vez está incluido en el fichero con privilegios para ejecutar cualquier comando. El fichero es propiedad del root y solo él puede modificarlo por seguridad





Cuando se precede una orden de carácter administrativo del comando sudo, el sistema pide por defecto la contraseña cada cierto tiempo al usuario sudoer para confirmar que se trata de él. Aunque se puede desactivar dicho comportamiento, no es recomendable (timestamp_timeout)


Su

Su significa super usuario y también switch user y es precisamente para lo que sirve, para cambiar de usuario sin necesidad de cerrar la sesión del usuario actual, por supuesto tenemos que conocer su contraseña. También se puede usar para cambiar de usuario al root (siempre que la cuenta no esté deshabilitada)

A diferencia de sudo, su puede ser utilizado por cualquier usuario, no es necesario que sea un sudoer.

Sudo su

Para complicar un poco más, está la combinación de ambos comandos, ampliamente usada por comodidad. Permite a usuario sudoer cambiar al root (incluso si la cuenta del root está deshabilitada). No será necesario introducir sudo para ejecutar comandos de índole administrativo mientras se esté en este modo

En el ejemplo que sigue:
  • intento de cambiar al root pero la cuenta está deshabilitada o fallo en la contraseña
  • cambio al usuario pepe
  • intento fallido de pepe de hacer sudo (no es un sudoer)
  • intento satisfactorio de asir de hacer sudo (si es un sudoer) 

Observación: Puedes teclear sudo su - y además de cambiar al root te dejaría posicionado en el home del root 

Activar la cuenta del root

Si a pesar de la recomendación se desea trabajar con la cuenta del root directamente, el proceso es tan simple como asignarle una contraseña a dicho usuario a través del comando passwd.

En el ejemplo que sigue:
  • activación de la cuenta root (asignarle contraseña)
  • cambio de usuario al root con comando su
  • desactivación de la cuenta root
  • intento fallido de cambio de usuario al root con comando su

Si la cuenta del root permanece desactivada, ningún usuario normal (los que no son sudoers), podrá dedicarse a intentar usar el comando su root para tratar de averiguar la contraseña del superusuario.

Conclusiones
  • Por defecto y por seguridad, Ubuntu viene con la cuenta de root desactivada.
  • Un sudoer puede ejecutar ordenes como si fuera el root.
  • Un sudoer puede cambiar al root esté o no activada la cuenta del root.
  • Cualquiera puede usar su para cambiar a otro usuario si sabe su login y password
  • Cualquier puede usar su para cambiar al root si sabe su login y password por eso es conveniente que la cuenta del root permanezca desactivada