Este tutorial explica cómo agregar, eliminar y otorgar Sudo privilegios a los usuarios en el sistema operativo Ubuntu Linux. Los pasos proporcionados a continuación se prueban en la edición Ubuntu 20.04 LTS. Sin embargo, los pasos son los mismos para otras distribuciones basadas en DEB. Antes de entrar en materia, veamos qué es sudo y sus beneficios.
1. ¿Qué es sudo?
En los sistemas operativos Linux y Unix, hay un usuario especial llamado root . El usuario root puede hacer cualquier cosa en un sistema similar a Unix. Usar un usuario root para las actividades del día a día puede ser peligroso y no recomendable. ¡Un comando incorrecto puede destruir todo el sistema! Aquí es donde el "sudo" viene en ayuda. Permite a los usuarios autorizados realizar tareas con privilegios de nivel raíz, incluso si no conocen la contraseña del usuario raíz. Por eso es importante crear un usuario regular y agregarlo al grupo de usuarios sudo para realizar tareas administrativas cuando sea necesario. Por lo tanto, este usuario puede actuar como usuario normal y administrador cuando ejecuta comandos con el prefijo sudo.
2. Beneficios de ser sudo
- No es necesario compartir la contraseña raíz con otros usuarios.
- Los usuarios no necesitan conocer la contraseña de usuario raíz para realizar tareas administrativas.
- Al realizar una tarea administrativa, se solicitará a los usuarios la contraseña de sudo antes de que se produzcan cambios en el sistema. Debería hacer que los usuarios piensen en las consecuencias de lo que están haciendo.
- Los derechos de administrador se pueden otorgar fácilmente a los usuarios y revocar en cualquier momento si ya no los necesitan.
- Algunas distribuciones de Linux, por ejemplo Ubuntu, deshabilitan al usuario raíz de manera predeterminada. Por lo tanto, no hay forma de lanzar ataques de fuerza bruta contra el usuario root. Incluso si alguien lo intentara, sería inútil. Porque no hay una contraseña de root que descifrar.
- Más importante aún, la sesión de sudo se agotará después de un breve período. Por si acaso, si dejó la terminal abierta después de ejecutar comandos como usuario root con permiso sudo, la autenticación caduca automáticamente. Por lo tanto, los otros usuarios no pueden realizar más tareas administrativas. De forma predeterminada, la contraseña se almacena durante 15 minutos en la sesión actual. Después de eso, debe ingresar la contraseña nuevamente.
- Supervise la actividad de la línea de comandos de los usuarios de sudo. sudo agrega una entrada de registro de los comandos ejecutados por los usuarios en el archivo /var/log/auth.log . Si hay algún problema, puede revisar esos comandos e intentar averiguar qué salió mal.
Estas son algunas de las ventajas de ser un usuario de sudo. Ahora, avancemos y veamos cómo agregar, eliminar y otorgar privilegios de Sudo a los usuarios de Linux
3. Agregar, eliminar y otorgar privilegios de Sudo a usuarios en Ubuntu
Primero, crearemos un usuario normal.
3.1. Agregar nuevo usuario en Linux
Primero, cree un usuario regular, por ejemplo "ubuntuserver" . Para hacerlo, ejecute:
$ sudo adduser ubuntuserver
Salida de muestra:
Adding user `ubuntuserver' ... Adding new group `ubuntuserver' (1001) ... Adding new user `ubuntuserver' (1001) with group `ubuntuserver' ... Creating home directory `/home/ubuntuserver' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for ubuntuserver Enter the new value, or press ENTER for the default Full Name []: ubuntu 20.04 server Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y
Se ha creado un nuevo usuario llamado "ubuntuserver".
3.2. Otorgar privilegios de Sudo a usuarios en Linux
En algunos sistemas Linux, por ejemplo Arch Linux, debe instalar "sudo" paquete antes de crear un nuevo usuario sudo.
# pacman -S sudo
En Debian:
# apt install sudo
En los servidores y escritorios de Ubuntu, "sudo" está instalado de forma predeterminada.
Ahora agregue el usuario recién creado al grupo sudo usando el siguiente comando:
$ sudo adduser ubuntuserver sudo
Salida de muestra:
Adding user `ubuntuserver' to group `sudo' ... Adding user ubuntuserver to group sudo Done.
Al usuario llamado "ubuntuserver" se le han otorgado permisos de sudo.
También puede usar el siguiente comando para agregar un usuario al grupo Sudo.
$ sudo usermod -aG sudo ubuntuserver
Para verificar si el usuario está en el grupo sudo, ejecute:
$ sudo -l -U ubuntuserver
Salida de muestra:
Matching Defaults entries for ubuntuserver on ostechnix: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User ubuntuserver may run the following commands on ostechnix: (ALL : ALL) ALL
Aquí, el "(TODOS:TODOS) TODOS" line significa que el usuario tiene privilegios ilimitados y puede ejecutar cualquier comando en el sistema. En este caso, el usuario "ubuntuserver" está en el grupo de usuarios sudo y ahora puede realizar todo tipo de tareas administrativas.
Si abres el contenido de los sudoers archivo;
$ sudo cat /etc/sudoers
Vería algunas líneas como las siguientes.
[...] # 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
Como puede ver en el resultado anterior, todos los miembros del grupo sudo pueden ejecutar cualquier comando.
- El primer TODO son los usuarios permitidos.
- El segundo TODO son los anfitriones. Si distribuye el mismo archivo "sudoers" a muchas computadoras host, el usuario puede ejecutar comandos administrativos en todos los hosts.
- El tercero es el usuario mientras ejecuta el comando.
- El último son los comandos permitidos.
3.3. Verificar usuarios de Sudo
Para verificar si el usuario puede realizar tareas administrativas, cierre la sesión y vuelva a iniciar sesión como el nuevo usuario.
Alternativamente, puede iniciar sesión inmediatamente como otro usuario con privilegios sudo, sin tener que cerrar sesión en la sesión actual, como se muestra a continuación.
$ sudo -i -u <username>
Ejemplo:
$ sudo -i -u ubuntuserver
Ahora, ejecute cualquier comando con el prefijo "sudo" como se muestra a continuación.
$ sudo apt update
3.4. Eliminar usuarios de Sudo
Puede eliminar los permisos de sudo de un usuario sin tener que eliminarlo por completo. Debe tener cuidado al hacer esto en sistemas Ubuntu. No elimine al administrador real del grupo "sudo". Debe haber al menos un usuario sudo en el sistema.
Para revocar los permisos de sudo de un usuario, el comando sería:
$ sudo deluser ubuntuserver sudo
El comando anterior eliminará al usuario llamado "ubuntuserver" del grupo "sudo".
Salida de muestra:
Removing user `ubuntuserver' from group `sudo' ... Done.
Tenga en cuenta que este comando solo eliminará al usuario 'ubuntuserver' del grupo sudo, pero no lo eliminará permanentemente del sistema.
Alternativamente, ejecute el siguiente comando para revocar el permiso sudo del usuario:
$ sudo gpasswd -d ubuntuserver sudo
Ahora, el usuario se convierte en un usuario normal y no puede realizar ninguna tarea administrativa con el permiso sudo.
Para verificar si el usuario realmente ha sido eliminado del grupo "sudo", ejecute:
$ sudo -l -U ubuntuserver
Salida de muestra:
User ubuntuserver is not allowed to run sudo on ostechnix.
Se eliminó el permiso sudo del usuario.
3.5. Eliminar usuarios de forma permanente
En el paso anterior, solo hemos eliminado a los usuarios del grupo "sudo". Pero el usuario todavía existe en el sistema. Para eliminar completamente a un usuario de un sistema Linux, inicie sesión como usuario root o sudo y ejecute:
$ sudo deluser <username>
Ejemplo:
$ sudo deluser ubuntuserver
Si desea eliminar un usuario junto con su directorio de inicio y cola de correo, ejecute:
$ sudo deluser --remove-home ubuntuserver
Salida de muestra:
Looking for files to backup/remove ... Removing files ... Removing user `ubuntuserver' ... Warning: group `ubuntuserver' has no more members. Done.
Para obtener más detalles, consulte las páginas man.
$ man adduser
$ man deluser
$ man sudo
Esta guía también está disponible para los sistemas Alpine Linux, Arch Linux y CentOS. Consulte las siguientes guías para agregar, eliminar y otorgar privilegios de sudo a los usuarios en las distribuciones Arch Linux y CentOS Linux.
- Agregar, eliminar y otorgar privilegios de Sudo a usuarios en Alpine Linux
- Agregar, eliminar y otorgar privilegios de Sudo a usuarios en Arch Linux
- Agregar, eliminar y otorgar privilegios de Sudo a usuarios en CentOS
Espero que esto ayude.
Lectura relacionada:
- Cómo cambiar el tiempo de espera de la contraseña de Sudo en Linux
- Cómo cambiar el archivo de registro Sudo predeterminado en Linux
- Cómo restaurar los privilegios de Sudo a un usuario
- Cómo encontrar todos los usuarios de Sudo en su sistema Linux
- Cómo ejecutar comandos particulares sin contraseña Sudo en Linux
Imagen destacada de mohamed Hassan de Pixabay .