Administración de usuarios, contraseñas, grupos y gestión de paquetes en Linux CentOS

Tipos de usuarios en Linux

En sistemas como CentOS, los usuarios se dividen en categorías basadas en su identificador único (UID):

  • Usuario root: UID 0, con privilegios administrativos totales.
  • Usuarios del sistema: UIDs del 1 al 999 (en CentOS 7) o del 1 al 499 (en CentOS 6), utilizados para ejecutar servicios y procesos, sin capacidad de inicio de sesión.
  • Usuarios de inicio de sesión: UIDs del 1000 al 65535 (en CentOS 7) o del 500 al 65535 (en CentOS 6), que pueden acceder al sistema.

Creación de usuarios con useradd

El comando useradd permite crear nuevos usuarios. Opciones comunes incluyen:

Uso: useradd [opciones] NOMBRE_LOGIN
-d: Define el directorio home del usuario.
-g: Asigna el ID del grupo primario.
-G: Especifica grupos adicionales (suplementarios).
-k: Copia archivos de un directorio específico (requiere -m).
-m: Crea el directorio home si no existe.
-c "mensaje": Añade una descripción para el usuario.
-N: Evita la creación de un grupo con el mismo nombre, usando 'users' como predeterminado.
-s: Establece la shell de inicio de sesión.
-u: Asigna un UID específico.
-D: Muestra la configuración predeterminada del sistema.
-D [opciones]: Modifica la configuración predeterminada.

Archivos relacionados:

  • /etc/default/useradd: Contiene la configuración predeterminada para nuevos usuarios.
  • /etc/skel/*: Archivos y directorios que se copian al crear un usuario nuevo.

Modificación de usuarios con usermod

El comando usermod ajusta atributos de usuarios existentes:

-c: Actualiza la descripción del usuario.
-d: Cambia el directorio home; usar -m para moverlo físicamente.
-g: Modifica el grupo primario.
-G: Reemplaza los grupos adicionales (usar -a para añadir sin reemplazar).
-l nuevo_nombre: Cambia el nombre de inicio de sesión.
-L: Bloquea el usuario, impidiendo el acceso al sistema.
-U: Desbloquea el usuario.
-s: Altera la shell predeterminada.
-u: Actualiza el UID.
-e AAAA-MM-DD: Establece una fecha de expiración para la cuenta.

Eliminación de usuarios con userdel

Por defecto, userdel no elimina el directorio home. Opciones clave:

  • -r: Borra el directorio home y su contenido.
  • -f: Forza la eliminación, incluso si el usuario está conectado (la sesión puede persistir temporalmente).

Consultar informaicón del usuario con id

El comando id muestra detalles de usuarios:

  • -g: Muestra solo el GID del grupo primario.
  • -G: Muestra los GIDs de los grupos adicionales.
  • -u: Muestra solo el UID.
  • -n: Muestra nombres en lugar de IDs (combinar con -g, -G, o -u).

Cambio de usuario con su

Para cambiar de usuario, use su:

su [opciones] [-] [USUARIO [argumento]...]

Formas de cambio:

  • Cambio completo: su - nombre_usuario – cambia el entorno completo, incluyendo variables y directorio home.
  • Cambio incompleto: su nombre_usuario – mantiene el entorno del usuario actual.
  • El usuario root puede cambiar a otros sin contraseña; otros usuarios necesitan la contraseña del objetivo.

Ejecución de comandos al cambiar:

[root@localhost ~]# su - usuario_prueba -c "whoami"
usuario_prueba

Ejecución de comandos con sudo

El archivo de configuración /etc/sudoers define permisos elevados. Ejemplo:

usuario_prueba   ALL=(ALL)       NOPASSWD:ALL

Aquí, NOPASSWD permite ejecutar comandos sin solicitar contraseña.

Archivo /etc/passwd

Este archivo almacena información de usuarios en líneas con campos separados por dos puntos:

  • Nombre de usuario.
  • Contraseña (representada por 'x' como marcador).
  • UID.
  • GID del grupo primario.
  • Descripción o comentario.
  • Directorio home.
  • Shell de inicio de sesión.

Establecimiento de contraseñas con passwd

El comando passwd gestiona contraseñas de usuarios:

passwd [OPCIONES] <nombre_cuenta>
-d: Elimina la contraseña (bloquea el acceso).
-l: Bloquea la cuenta del usuario.
-u: Desbloquea la cuenta.
-e: Obliga al usuario a cambiar la contraseña en el próximo inicio de sesión.
-f: Fuerza la operación.
-x maxdías: Define el tiempo máximo de uso de la contraseña.
-n mindías: Establece el tiempo mínimo antes de cambiar.
-w alertadías: Indica los días de advertencia antes de la expiración.
-i inactivodías: Configura días de inactividad tras expiración.
--stdin: Lee la contraseña desde la entrada estándar, por ejemplo: echo 'secreto123' | passwd --stdin usuario_prueba

Archivo /etc/shadow

Contiene información segura de contraseñas:

  • Nombre de usuario.
  • Contraseña cifrada (formato: $método_cifrado$salt$cadena_cifrada$, por defecto SHA-512).
  • Días desde el 1 de enero de 1970 hasta la última modificación.
  • Días mínimos antes de cambiar la contraseña (0 = cambio inmediato).
  • Días máximos de validez (99999 = nunca expira).
  • Días de advertencia antes de la expiración (por defecto, una semana).
  • Días de inactividad tras expiración.
  • Fecha de expiración de la cuenta (días desde 1970).

Estrategias de complejidad de contraseñas

Para mejorar la sgeuridad, se recomiendan contraseñas que:

  • Incluyan números, mayúsculas, minúsculas y caracteres especiales.
  • Tengan al menos 12 caracteres.
  • No sean contraseñas débiles o comunes.
  • Se generen aleatoriamente.
  • Se cambien cada tres o seis meses.

Autenticación SSH sin contraseña

Para configurar acceso sin contraseña entre máquinas:

ssh-keygen  # Genera claves, aceptando valores predeterminados.
ssh-copy-id maquina_destino  # Copia la clave pública al host remoto.

Política de contraseñas con chage

El comando chage modifica parámetros de caducidad de contraseñas:

-E: Establece la fecha de expiración de la cuenta.
-I: Define días de inactividad tras expiración.
-m: Configura el período mínimo de cambio.
-M: Establece el período máximo de validez.
-W: Indica días de advertencia antes de la expiración.
chage nombre_usuario: Inicia un modo interactivo para ajustar políticas.

Información personal con chfn

El comando chfn actualiza datos personales del usuario, como nombre completo o teléfono.

Grupos de usuarios

Los grupos organizan usuarios con permisos comunes:

  • Grupo root: GID 0.
  • Grupos del sistema: GIDs del 1 al 999 (CentOS 7) o del 1 al 499 (CentOS 6).
  • Grupos de usuarios de inicio de sesión: GIDs del 1000 al 65535 (CentOS 7) o del 500 al 65535 (CentOS 6).

Creación de grupos con groupadd

groupadd [opciones]
-g: Especifica el GID del grupo.
-r: Crea un grupo de sistema.

Archivos de grupos

/etc/group:

  • Nombre del grupo.
  • Marcador de contraseña ('x').
  • GID.
  • Lista de miembros adicionales (separados por comas).

/etc/gshadow:

  • Nombre del grupo.
  • Contraseña cifrada (raramente usada).
  • Administradores del grupo.
  • Miembros del grupo.

Modificación y eliminación de grupos

groupmod cambia atributos de grupos:

  • -g: Modifica el GID.
  • -n: Cambia el nombre del grupo.

groupdel elimina un grupo existente.

Gestión de paquetes de software

En sistemas como CentOS, los paquetes se distribuyen en formatos RPM (Red Hat Package Manager). Herramientas como yum facilitan la gestión al resolver dependencias automáticamente.

Convenciones de nombres de paquetes RPM

ejemplo-nombre-1.2.3-4.el7.x86_64.rpm
Formato: nombre-versión (mayor.menor.revisión)-versión_paquete.sistema.arquitectura.rpm
Arquitecturas comunes:
    x86_64
    x86
    i386
    i486
    i686
    ppc
    noarch (universal)

Fuentes de paquetes

Los paquetes pueden obtenerse de:

  • Medios físicos como CD/DVD.
  • Sitios web oficiales o de terceros.
  • Repositorios EPEL (paquetes adicionales para Enterprise Linux).
  • Sitios como https://pkgs.org.

Consultas con rpm

rpm -q paquete: Verifica si un paquete está instalado.
-a: Lista todos los paquetes instalados.
-f archivo: Identifica el paquete que proporcionó un archivo.
-c: Muestra archivos de configuración de un paquete.
-d: Lista documentación asociada.
-i: Muestra información detallada del paquete.
-l: Enumera archivos instalados por el paquete.
Combinaciones útiles: -qi, -qa, -ql, -qc, -qd.

Gestión con yum

yum simplifica la administración de paquetes al manejar dependencias. Los repositorios contienen paquetes y metadatos.

Configuración de repositorios yum

Los archivos de configuración residen en /etc/yum.repos.d/. Ejemplo:

[base]
name=CentOS-$releasever - Base - mirrors.ejemplo.com
failovermethod=priority  # 'priority' (orden) o 'roundrobin' (aleatorio)
baseurl=http://mirrors.ejemplo.com/centos/$releasever/os/$basearch/
enabled={0|1}  # 1 para habilitar, 0 para deshabilitar.
gpgcheck={0|1} # 1 para verificar firmas GPG.
gpgkey=http://mirrors.ejemplo.com/centos/RPM-GPG-KEY-CentOS-7
Variables: $releasever (versión del sistema), $basearch (arquitectura).

Comandos esenciales de yum

  • yum repolist: Lista repositorios activos.
  • yum list: Muestra paquetes disponibles (instalados marcados con '@').
  • yum install paquete: Instala un paquete.
  • yum reinstall paquete: Reinstala un paquete.
  • yum update: Actualiza todos los paquetes o uno específico.
  • yum downgrade paquete: Deja una versión anterior.
  • yum check-update: Comprueba actualizaciones disponibles.
  • yum remove paquete: Desinstala un paquete.
  • yum info paquete: Muestra información detallada.
  • yum clean all: Limpia caché de metadatos.
  • yum makecache: Reconstruye la caché de metadatos.
  • yum search término: Busca paquetes por nombre o descripción.
  • yum provides comando: Identifica el paquete que ofrece un comando.

Grupos de paquetes con yum

  • yum grouplist: Lista grupos de paquetes disponibles.
  • yum groupinstall grupo: Instala un grupo de paquetes.
  • yum groupinfo grupo: Detalla los paquetes de un grupo.
  • yum groupupdate grupo: Actualiza un grupo.
  • yum groupremove grupo: Desinstala un grupo.

Opciones comunes: -y (confirmación automática), -q (modo silencioso).

Instalación desde código fuente

Para compilar software desde código fuente, siga estos pasos:

1. Descargar: wget https://ejemplo.com/software-1.0.tar.gz
2. Extraer: tar xzf software-1.0.tar.gz
3. Cambiar al directorio: cd software-1.0
4. Revisar documentación: cat README INSTALL
5. Instalar dependencias: yum install zlib-devel openssl-devel
6. Configurar: ./configure --prefix=/opt/software10 --enable-opciones
7. Compilar: make
8. Instalar: make install
9. Configurar variables de entorno en archivos como /etc/profile o ~/.bashrc.

Etiquetas: linux centos useradd usermod passwd

Publicado el 6-27 04:19