Skip to Content
DocumentaciónOperacionesAdministración del sistemaUsuarios y permisos

Usuarios y permisos

Ubuntu es un sistema operativo multiusuario, y la gestión adecuada de usuarios y la configuración de permisos son las piedras angulares de la seguridad del sistema. Este artículo explica cómo crear y administrar usuarios, configurar grupos y comprender el sistema de permisos de archivos en Ubuntu 26.04.

Gestión de usuarios

Creando usuarios

Utilice useradd para crear un nuevo usuario:

# Create a user with a home directory sudo useradd -m -s /bin/bash username # Set the password sudo passwd username

Se prefiere el comando adduser, ya que es un script contenedor interactivo que lo guía a través de la configuración:

sudo adduser username

Modificar atributos de usuario

Utilice usermod para modificar los atributos de un usuario existente:

# Change the default shell sudo usermod -s /bin/zsh username # Change home directory (and move files) sudo usermod -d /home/newdir -m username # Lock a user account sudo usermod -L username # Unlock a user account sudo usermod -U username # Rename a user sudo usermod -l newname oldname

Eliminar usuarios

# Delete a user but keep the home directory sudo userdel username # Delete a user and their home directory sudo userdel -r username

Ver información del usuario

# Check the current user whoami # View user ID and group information id username # List all users cat /etc/passwd # View currently logged-in users who w

Gestión de grupos

Crear y administrar grupos

# Create a new group sudo groupadd developers # Add a user to a group (preserving existing groups) sudo usermod -aG developers username # Add a user to multiple groups sudo usermod -aG docker,sudo,developers username # View the groups a user belongs to groups username # View all members of a group getent group developers # Delete a group sudo groupdel developers

Grupo primario versus grupos suplementarios

Cada usuario tiene un grupo primario y cero o más grupos suplementarios:

# Change a user's primary group sudo usermod -g newgroup username # Modify supplementary groups (-a means append; without -a, all supplementary groups are replaced) sudo usermod -aG extragroup username

configuración sudo

Note

Ubuntu 26.04 envía sudo-rs, una reescritura de Rust, como reemplazo predeterminado para el tradicional C sudo. Es compatible con la gran mayoría de la sintaxis común de sudoers (reglas de usuario/grupo, NOPASSWD, ALL, /etc/sudoers.d/, etc.), por lo que el uso diario no cambia. Sin embargo, algunas directivas poco conocidas y complementos de terceros aún no se han implementado. Si un script dependiente de sudo falla o se comporta inesperadamente, primero ejecute sudo --version para confirmar la implementación actual y, si es necesario, instale temporalmente la versión tradicional con sudo apt install sudo para solucionar el problema, luego vuelva a sudo-rs una vez que se solucione el problema.

Uso básico

# Execute a command with root privileges sudo apt update # Switch to the root user sudo -i # Execute a command as another user sudo -u www-data command

Agregar un usuario al grupo sudo

# In Ubuntu, members of the sudo group have administrator privileges sudo usermod -aG sudo username

Editando el archivo sudoers

Utilice siempre visudo para editar la configuración de sudoers, ya que realiza una verificación de sintaxis antes de guardar:

sudo visudo

Ejemplos de configuración comunes:

# Allow a user to execute all commands without a password username ALL=(ALL) NOPASSWD: ALL # Allow a user to execute only specific commands username ALL=(ALL) /usr/bin/systemctl restart nginx, /usr/bin/systemctl status nginx # Allow group members to execute apt without a password %developers ALL=(ALL) NOPASSWD: /usr/bin/apt

También puede crear archivos de configuración independientes en /etc/sudoers.d/:

sudo visudo -f /etc/sudoers.d/developers

Conceptos básicos de permisos de archivos

Comprender la notación de permisos

Los permisos de archivos de Linux constan de tres conjuntos: propietario, grupo y otros. Cada conjunto incluye permisos de lectura (r=4), escritura (w=2) y ejecución (x=1).

# View file permissions ls -la # Example output: # -rwxr-xr-- 1 user group 4096 Jan 1 12:00 script.sh # │├─┤├─┤├─┤ # │ │ │ └── Others: r-- (read only) # │ │ └── Group: r-x (read and execute) # │ └── Owner: rwx (read, write, execute) # └── File type: - regular file, d directory, l symlink

chmod - Cambiar permisos

# Numeric mode chmod 755 script.sh # rwxr-xr-x chmod 644 config.txt # rw-r--r-- chmod 600 secret.key # rw------- # Symbolic mode chmod u+x script.sh # Add execute permission for the owner chmod g+w file.txt # Add write permission for the group chmod o-r file.txt # Remove read permission for others chmod a+r file.txt # Add read permission for everyone # Recursively change directory permissions chmod -R 755 /var/www/html

chown - Cambio de propietario

# Change the file owner sudo chown newuser file.txt # Change both owner and group sudo chown newuser:newgroup file.txt # Change only the group sudo chgrp newgroup file.txt # Recursively change directory ownership sudo chown -R www-data:www-data /var/www

Permisos especiales

# SUID - Execute as the file owner chmod u+s executable chmod 4755 executable # SGID - Execute as the file group / new files in directory inherit the group chmod g+s directory chmod 2755 directory # Sticky Bit - Only the file owner can delete files (commonly used on /tmp) chmod +t directory chmod 1777 directory

umask - Máscara de permiso predeterminada

# View current umask umask # Set umask (new file default = 0666 - umask, new directory = 0777 - umask) umask 022 # New files 644, new directories 755 umask 077 # New files 600, new directories 700

Para cambiar permanentemente la umask, edite ~/.bashrc o /etc/login.defs.

Permisos extendidos de ACL

Cuando los permisos estándar no son lo suficientemente flexibles, puede utilizar ACL (listas de control de acceso):

# Install ACL tools sudo apt install acl # Grant permissions to a specific user setfacl -m u:username:rwx /path/to/file # Grant permissions to a specific group setfacl -m g:groupname:rx /path/to/dir # View ACL settings getfacl /path/to/file # Recursively set ACL setfacl -R -m u:username:rwx /path/to/dir # Set default ACL (newly created files inherit automatically) setfacl -d -m u:username:rwx /path/to/dir # Remove ACL setfacl -x u:username /path/to/file

Mejores prácticas

  1. Principio de privilegio mínimo: Otorgue a los usuarios solo los permisos mínimos necesarios para realizar su trabajo.
  2. Evite usar root directamente: use sudo para ejecutar comandos administrativos en lugar de permanecer conectado como root.
  3. Utilice los grupos con prudencia: Administrar permisos a través de grupos es más eficiente que configurar cada usuario individualmente.
  4. Auditar periódicamente: revise periódicamente /etc/passwd y /etc/group para limpiar los usuarios y grupos que ya no son necesarios.
  5. Proteja archivos confidenciales: asegúrese de que archivos como las claves /etc/shadow y SSH tengan los permisos correctos (600 o más estrictos).