Sudo, Su: Escalado de permisos en linux
Debido al sistema de permisos de Linux, muchas de las tareas de administración tienen que realizarse con con permisos del administrador de la máquina (root):
- Manejo de usuarios
- Instalación de aplicaciones y paquetes
- Gestión de la redes
- Ficheros de configuración
- Sistema de arranque
- Manejo de servicios
- Montaje de dispositivos
Es por esto que la mayor parte de las distribuciones de Linux suelen recomendar la creación de un usuario, que no tenga este tipo de permisos, para evitar posibles fallos en la administración de la máquina que pueda borrar cosas que no se deban, o que dejen el sistema en un estado inusable o inestable.
En el caso de Ubuntu, tanto es así , que directamente cuando se instala la distribución no se define la contraseña de root. En el caso de Debian, por ejemplo, se configuran, tanto el usuario root, como el del usuario principal de la máquina.
Pero si en Ubuntu no se tiene una contraseña para root predefinida, ¿Cómo se accede como root? Mediante el comando sudo:
sudo otro_comando
De esta manera se ejecutará el otro comando que pongamos después de sudo con privilegios de administrador. Para verificar que somos un usuario con permisos para realizar este escalado y convertirnos de manera temporal en el usuario root, nos pedirá la contraseña del usuario principal, el que indicamos mediante la instalación. Por ejemplo:
sudo apt update
Como puede verse en la captura estamos ejecutando el comando apt update que actualiza los paquetes disponibles desde los repositorios configurados, pero como es un comando de administración, debemos anticiparlo con sudo para poder ejecutarlo, sino nos dará un error de falta de permisos de root. Si queremos ejecutar más comandos deberemos volver a utilizar sudo para
En el caso de Debian, no se utiliza sudo, sino el comando su, que permite hacer algo parecido a lo que hace sudo, pero de una manera más permanente ejecutando el comando
su –
De esta manera se abrirá una consola nueva pero con los permisos de administrador, esta vez pedirá la contraseña del administrador (root) para desbloquearla.
Como vemos en la captura veremos como loguearnos y utilizar el su – para convertirnos en root. Como podemos observar la consola cambia y en vez del típico $ tendremos una sexy # que nos informa que ya tenemos derechos de administrador.
En ambos casos dispondremos de una carpeta principal de usuario /root diferente a la carpeta /home/usuario que disponemos normalmente.
Para los curiosos un pequeño bonus:
El fichero /etc/sudoers controla el acceso al comando sudo, en el caso de Ubuntu, los usuarios que pertenecen al grupo admin y al grupo sudo pueden ejecutar comando con sudo.
(base) pepesan@sauron:~$ sudo cat /etc/sudoers
[sudo] contraseña para pepesan:
#
# This file MUST be edited with the ‘visudo’ command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin”
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on “#include” directives:
#includedir /etc/sudoers.d
Para añadir un usuario al grupo admin:
usermod -a -G admin usuario
No olvides que como comando que controla usuarios debe ejecutarse con sudo o con permisos de root
Referencias:
Comments