Gestión de usuarios y grupos locales- Redes PYMES

ƍndice general de la serie: Redes de Computadoras para las PYMES: Introducción

”Hola amigas y amigos!

Este artículo es continuación de Squid + Autenticación PAM en CentOS 7- Redes PYMES.

Los sistemas operativos UNIX/Linux ofrecen un ambiente multiusuario REAL, en los cuales muchos usuarios pueden trabajar  simultÔneamente sobre el mismo sistema y compartir recursos tales como procesadores, discos duros, memoria, interfaces de redes, dispositivos insertados en el sistema, etcétera.

Por ello, los Administradores de Sistemas estÔn obligados a gestionar de forma continua a los usuarios y grupos del sistema y a formular e implementar una buena estrategia de administración.

A continuación veremos de forma muy concisa los aspectos generales de ésta importante actividad en la Administración de Sistemas Linux.

A veces es mejor ofrecer Utilidad y luego Necesidad.

Ɖste es un tƭpico ejemplo de ese orden. Primero mostramos como implementar un servicio de Internet Proxy con Squid y usuarios locales. Ahora nos debemos preguntar:

  • Āæcómo puedo implementar servicios de redes en una LAN UNIX/Linux a partir de usuarios locales y con una seguridad aceptable?.

No importa que, ademƔs, estƩn conectados a Ʃsta red clientes Windows. Solo importa la necesidad de cuƔles servicios necesita la Red PYME y cuƔl es la forma mas sencilla y barata de implementarlos.

Una buena pregunta que cada cual debe buscar sus respuestas. Invito a que realicen una búsqueda por el término «authentication» en la Wikipedia en inglés, que por mucho es la mas completa y coherente en lo que a contenido original -en inglés- se refiere.

Acorde a la Historia y a grosso modo, primero fue la Autenticación y Autorización locales, después NIS Network Information System desarrollado por la Sun Microsystem y conocido también como Yellow Pages o yp, y después LDAP Lightweight Directory Access Protocol.

Lo de «Seguridad Aceptable» viene a colación debido a que muchas veces nos preocupamos por la seguridad de nuestra red local, mientras accedemos a Facebook, Gmail, Yahoo, etcétera -por mencionar solos unos pocos- y entregamos a Nuestra Privacidad en ellos. Y miren Ustedes la gran cantidad de artículos y documentales que al respecto de la No Privacidad en Internet existen.

Nota sobre CentOS y Debian

CentOS/Red Hat y Debian tienen su propia filosofía en cuanto a cómo implementar la seguridad, que no difiere en aspectos fundamentales. No obstante afirmamos que las dos son muy estables, seguras y fiables. Por ejemplo, en CentOS el contexto SELinux viene habilitado por defecto. En Debian debemos instalar el paquete selinux-basics, lo que indica que también podemos utilizar SELinux.

En CentOS, FreeBSD, y otros sistemas operativos, se crea el grupo -del sistema- wheel para permitir el acceso como root solamente a los usuarios del sistema que pertenezcan a ese grupo. Lea /usr/share/doc/pam-1.1.8/html/Linux-PAM_SAG.html, y /usr/share/doc/pam-1.1.8/html/Linux-PAM_SAG.html. Debian no incorpora un grupo wheel.

Archivos y comandos principales

Archivos

Los principales archivos relacionados con la gestión de los usuarios locales en un sistema operativo Linux son:

CentOS y Debian

  • /etc/passwd: información de las cuentas de usuario.
  • /etc/shadow: información de seguridad de las cuentas de usuario.
  • /etc/group: información de las cuentas de grupos.
  • /etc/gshadow: información de seguridad de las cuentas de grupo.
  • /etc/default/useradd: valores por defecto para la creación de las cuentas.
  • /etc/skel/: directorio que contiene los archivos por defecto que se incluiran en el directorio HOME del nuevo usuario.
  • /etc/login.defs: suite de configuración de la seguridad de las contraseƱas.

Debian

  • /etc/adduser.conf: valores por defecto para la creación de las cuentas.

Comandos en CentOS y Debian

[root@linuxbox ~]# chpasswd -h # Actualiza contraseƱas en modo batch
Modo de uso: chpasswd [opciones]

Opciones:
  -c, --crypt-method METHOD     the crypt method (one of NONE DES MD5 SHA256 SHA512)
  -e, --encrypted               se cifran las contraseƱas proporcionadas
  -h, --help                    muestra este mensaje de ayuda y termina
  -m, --md5                     cifra la contraseƱa en claro utilizando
                                el algoritmo MD5
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --sha-rounds              nĆŗmero de rondas SHA para los algoritmos
                                de cifrado SHA*

# batch: ejecuta comandos cuando la carga del sistema lo permite. En otras palabras 
# cuando la carga promedio cae por debajo de 0.8 o el valor especificado al invocar
# el comando atd. Mas información man batch.

[root@linuxbox ~]# gpasswd -h   # Declara Administradores en /etc/group y /etc/gshadow
Modo de uso: gpasswd [opciones] GRUPO

Opciones:
  -a, --add USUARIO             aƱade USUARIO al GRUPO
  -d, --delete USUARIO          elimina USUARIO del GRUPO
  -h, --help                    muestra este mensaje de ayuda y termina
  -Q, --root CHROOT_DIR         directory to chroot into
  -r, --delete-password         remove the GROUP's password
  -R, --restrict                restringe el acceso a GRUPO a sus miembros
  -M, --members USUARIO,...     establece la lista de miembros de GRUPO
  -A, --administrators ADMIN,...
                                establece la lista de administradores de GRUPO
Excepto las opciones -A y -M, las opciones no se pueden combinar.

[root@linuxbox ~]# groupadd -h    # Crea un nunevo grupo
Modo de uso: groupadd [opciones] GRUPO

Opciones:
  -f, --force                   termina si el grupo ya existe, y cancela -g
                                si el GID ya se estĆ” en uso
  -g, --gid GID                 utiliza GID para el nuevo grupo
  -h, --help                    muestra este mensaje de ayuda y termina
  -K, --key CLAVE=VALOR         sobrescribe los valores predeterminados de
                                Ā«/etc/login.defsĀ»
  -o, --non-unique              permite crear grupos con GID (no Ćŗnicos)
                                duplicados
  -p, --password CONTRASEƑA     utiliza esta contraseƱa cifrada para el nuevo
                                grupo
  -r, --system                  crea una cuenta del sistema
  -R, --root CHROOT_DIR         directory to chroot into

[root@linuxbox ~]# groupdel -h # Borra un grupo existente
Modo de uso: groupdel [opciones] GRUPO

Opciones:
  -h, --help                    muestra este mensaje de ayuda y termina
  -R, --root CHROOT_DIR         directory to chroot into

[root@linuxbox ~]# groupmems -h # Declara Administradores en el grupo primario de un usuario
Modo de uso: groupmems [opciones] [acción]

Opciones:
  -g, --group GRUPO             cambia el nombre del grupo en lugar del grupo
                                del usuario (sólo lo puede hacer el
                                administrador)
  -R, --root CHROOT_DIR         directory to chroot into

Acciones:
  -a, --add USUARIO             aƱade USUARIO a los miembros del grupo
  -d, --delete USUARIO          elimina USUARIO de la lista de miembros del
                                grupo
  -h, --help                    muestra este mensaje de ayuda y termina
  -p, --purge                   purga todos los miembros del grupo
  -l, --list                    lista los miembros del grupo

[root@linuxbox ~]# groupmod -h  # Modifica la definición de un grupo
Modo de uso: groupmod [opciones] GRUPO

Opciones:
  -g, --gid GID                 cambia el identificador del grupo a GID
  -h, --help                    muestra este mensaje de ayuda y termina
  -n, --new-name GRUPO_NUEVO    cambia el nombre a GRUPO_NUEVO
  -o, --non-unique              permite utilizar un GID duplicado (no Ćŗnico)
  -p, --password CONTRASEƑA     cambia la contraseƱa a CONTRASEƑA (cifrada)
  -R, --root CHROOT_DIR         directory to chroot into

[root@linuxbox ~]# grpck -h # Verifica la integridad de un archivo de grupos
Modo de uso: grpck [opciones] [grupo [gshadow]]

Opciones:
  -h, --help                    muestra este mensaje de ayuda y termina
  -r, --read-only               display errors and warnings
                                but do not change files
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --sort                    sort entries by UID

[root@linuxbox ~]# grpconv
# Comandos asociados: pwconv, pwunconv, grpconv, grpunconv
# Se utiliza para convertir desde y hacia contraseƱas shadow y grupos
# Los cuatro comandos operan sobre los archivos /etc/passwd, /etc/group, /etc/shadow, 
# y /etc/gshadow. Para mas información man grpconv.

[root@linuxbox ~]# sg -h   # Ejecuta un comando con un diferente group ID o GID
Modo de uso: sg grupo [[-c] orden]

[root@linuxbox ~]# newgrp -h    # Cambia el GID actual durante un inicio de sesión
Modo de uso: newgrp [-] [grupo]

[root@linuxbox ~]# newusers -h  # Actualiza y crea nuevos usuarios en modo batch
Modo de uso: newusers [opciones]

Opciones:
  -c, --crypt-method METHOD     the crypt method (one of NONE DES MD5 SHA256 SHA512)
  -h, --help                    muestra este mensaje de ayuda y termina
  -r, --system                  crea cuentas del sistema
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --sha-rounds              nĆŗmero de rondas SHA para los algoritmos
                                de cifrado SHA*

[root@linuxbox ~]# pwck -h  # Verifica la integridad de los archivos de contraseƱas
Modo de uso: pwck [opciones] [passwd [shadow]]

Opciones:
  -h, --help                    muestra este mensaje de ayuda y termina
  -q, --quiet                   report errors only
  -r, --read-only               display errors and warnings
                                but do not change files
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --sort                    sort entries by UID

[root@linuxbox ~]# useradd -h   # Crea un nuevo usuario o actualiza la información por
                # defecto del nuevo usuario
Modo de uso: useradd [opciones] USUARIO
             useradd -D
             useradd -D [opciones]

Opciones:
  -b, --base-dir DIR_BASE       directorio base para el directorio personal
                                de la nueva cuenta
  -c, --comment COMENTARIO      campo GECOS de la nueva cuenta
  -d, --home-dir DIR_PERSONAL   directorio personal de la nueva cuenta
  -D, --defaults                imprime o cambia la configuración
                                predeterminada de useradd
  -e, --expiredate FECHA_CADUCIDAD  fecha de caducidad de la nueva cuenta
  -f, --inactive INACTIVO       periodo de inactividad de la contraseƱa
                                de la nueva cuenta
delgroup
  -g, --gid GRUPO               nombre o identificador del grupo primario de
                                la nueva cuenta
  -G, --groups GRUPOS           lista de grupos suplementarios de la nueva
                                cuenta
  -h, --help                    muestra este mensaje de ayuda y termina
  -k, --skel DIR_SKEL           utiliza este directorio «skeleton» alternativo
  -K, --key CLAVE=VALOR         sobrescribe los valores predeterminados de
                                Ā«/etc/login.defsĀ»
  -l, --no-log-init             no aƱade el usuario a las bases de datos de
                                lastlog y faillog
  -m, --create-home             crea el directorio personal del usuario
  -M, --no-create-home          no crea el directorio personal del usuario
  -N, --no-user-group           no crea un grupo con el mismo nombre que el
                                usuario
  -o, --non-unique              permite crear usuarios con identificadores
                                (UID) duplicados (no Ćŗnicos)
  -p, --password CONTRASEƑA     contraseƱa cifrada de la nueva cuenta
  -r, --system                  crea una cuenta del sistema
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --shell CONSOLA           consola de acceso de la nueva cuenta
  -u, --uid UID                 identificador del usuario de la nueva cuenta
  -U, --user-group              crea un grupo con el mismo nombre que el
                                usuario
  -Z, --selinux-user USUARIO_SE  utiliza el usuario indicado para el usuario
                                 de SELinux

[root@linuxbox ~]# userdel -h   # Borra la cuenta de un usuario y archivos relacionados
Modo de uso: userdel [opciones] USUARIO

Opciones:
  -f, --force                   force some actions that would fail otherwise
                                e.g. removal of user still logged in
                                or files, even if not owned by the user
  -h, --help                    muestra este mensaje de ayuda y termina
  -r, --remove                  elimina el directorio personal y el buzón de
                                correo
  -R, --root CHROOT_DIR         directory to chroot into
  -Z, --selinux-user            remove any SELinux user mapping for the user

[root@linuxbox ~]# usermod -h   # Modifica una cuenta de usuario
Modo de uso: usermod [opciones] USUARIO

Opciones:
  -c, --comment COMENTARIO      nuevo valor del campo GECOS
  -d, --home DIR_PERSONAL       nuevo directorio personal del nuevo usuario
  -e, --expiredate FECHA_EXPIR  establece la fecha de caducidad de la
                                cuenta a FECHA_EXPIR
  -f, --inactive INACTIVO       establece el tiempo de inactividad despuƩs
                                de que caduque la cuenta a INACTIVO
  -g, --gid GRUPO               fuerza el uso de GRUPO para la nueva cuenta
                                de usuario
  -G, --groups GRUPOS           lista de grupos suplementarios
  -a, --append                  append the user to the supplemental GROUPS
                                mentioned by the -G option without removing
                                him/her from other groups
  -h, --help                    muestra este mensaje de ayuda y termina
  -l, --login NOMBRE            nuevo nombre para el usuario
  -L, --lock                    bloquea la cuenta de usuario
  -m, --move-home               mueve los contenidos del directorio
                                personal al directorio nuevo (usar sólo
                                junto con -d)
  -o, --non-unique              permite usar UID duplicados (no Ćŗnicos)
  -p, --password CONTRASEƑA     usar la contraseƱa cifrada para la nueva cuenta
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --shell CONSOLA           nueva consola de acceso para la cuenta del
                                usuario
  -u, --uid UID                 fuerza el uso del UID para la nueva cuenta
                                de usuario
  -U, --unlock                  desbloquea la cuenta de usuario
  -Z, --selinux-user SEUSER     new SELinux user mapping for the user account

Comandos en Debian

Debian establece la diferencia entre useradd y adduser. Recomienda que los Administradores de Sistemas utilicen adduser.

root@sysadmin:/home/xeon# adduser -h   # AƱade un usuario al sistema
root@sysadmin:/home/xeon# addgroup -h   # AƱade un grupo al sistema
adduser [--home DIRECTORIO] [--shell SHELL] [--no-create-home] [--uid ID]
[--firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup GRUPO | --gid ID]
[--disabled-password] [--disabled-login] USUARIO
   AƱade un usuario normal

adduser --system [--home DIRECTORIO] [--shell SHELL] [--no-create-home] [--uid ID]
[--gecos GECOS] [--group | --ingroup GRUPO | --gid ID] [--disabled-password]
[--disabled-login] USUARIO
   AƱade un usuario del sistema

adduser --group [--gid ID] GRUPO
addgroup [--gid ID] GRUPO
   AƱade un grupo de usuarios

addgroup --system [--gid ID] GRUPO
   AƱade un grupo del sistema

adduser USUARIO GRUPO
   AƱade un usuario existente a un grupo existente


opciones generales:
  --quiet | -q         no mostrar información del proceso en 
                       la salida estƔndar
  --force-badname      permitir nombres de usuarios que no 
                       coincidan con la variable de configuración
                       NAME_REGEX
  --help | -h          mensaje de uso
  --version | -v       número de versión y copyright
  --conf | -c FICHERO  usa FICHERO como fichero de configuración

root@sysadmin:/home/xeon# deluser -h # Elimina un usuario normal del sistema
root@sysadmin:/home/xeon# delgroup -h   # Elimina un grupo normal del sistema
deluser USUARIO
  elimina un usuario normal del sistema
  ejemplo: deluser miguel

  --remove-home             elimina el directorio personal del usuario y la cola de correo.
  --remove-all-files        elimina todos los ficheros que pertenecen al usuario.
  --backup                  hace una copia de seguridad de los ficheros antes de borrar.
  --backup-to <DIR>         directorio destino para las copias de seguridad.
                            Se utiliza el directorio actual por omisión.
  --system                  sólo eliminar si es un usuario del sistema.

delgroup GRUPO
deluser --group GRUPO
  elimina un grupo del sistema
  ejemplo: deluser --group estudiantes

  --system                  sólo eliminar si es un grupo del sistema.
  --only-if-empty           sólo eliminar si no tienen mÔs miembros.

deluser USUARIO GRUPO
  elimina al usuario del grupo
  ejemplo: deluser miguel estudiantes

opciones generales:
  --quiet | -q         no dar información de proceso en la salida estÔndar
  --help | -h          mensaje de uso
  --version | -v       número de versión y copyright
  --conf | -c FICHERO  usa FICHERO como fichero de configuración

PolĆ­ticas

Existen dos tipos de polĆ­ticas que debemos considerar al crear las cuentas de usuarios:

  • PolĆ­ticas de Cuentas de Usuarios
  • PolĆ­ticas de envejecimiento de las contraseƱas

PolĆ­ticas de Cuentas de Usuarios

En la prƔctica, los componentes fundamentales que identifican a una cuenta de usuario son:

  • Nombre de la cuenta del usuario – user LOGIN, que no el nombre y los apellidos.
  • Id del usuario – UID.
  • Grupo principal al cual pertenece – GID.
  • ContraseƱa – password.
  • permisos de acceso – access permissions.

Los principales factores a considerar durante la creación de una cuenta de usuarios son:

  • La magnitud de tiempo durante el cual el usuario tendrĆ” acceso al sistema de archivos y recursos.
  • La magnitud de tiempo en que el usuario debe cambiar su contraseƱa -de forma periódica- por razones de seguridad.
  • La magnitud de tiempo que el inicio de sesión -login- permanecerĆ” activo.

AdemƔs, al asignar a un usuario su UID y password, debemos tener en cuenta que:

  • El valor entero UID debe ser Ćŗnico y no negativo.
  • El password debe tener una adecuada longitud y complejidad, de forma que sea difĆ­cil descifrarla.

Polƭticas de envejecimiento de contraseƱas

En un sistema Linux, el password de un usuario no tiene asignado un tiempo de expiración por defecto. Si utilizamos las políticas de envejecimiento de las contraseñas, podemos cambiar el comportamiento por defecto y al crear usuarios se tomarÔn en cuenta las políticas definidas.

En la prƔctica, son dos los factores a considerar cuando establecemos la edad de una contraseƱa:

  • Seguridad.
  • Conveniencia del usuario.

Una contraseña es mas segura mientras mas corto sea su período de expiración. Se corre menos riesgo de que se filtre a otros usuarios.

Para establecer las polƭticas de envejecimiento de las contraseƱas, podemos utilizar el comando chage:

[root@linuxbox ~]# chage
Modo de uso: chage [opciones] USUARIO

Opciones:
  -d, --lastday ÚLTIMO_DƍA      establece el dĆ­a del Ćŗltimo cambio de la
                                contraseƱa a ÚLTIMO_DƍA
  -E, --expiredate FECHA_CAD    establece la fecha de caducidad a FECHA_CAD
  -h, --help                    muestra este mensaje de ayuda y termina
  -I, --inactive INACTIVA       deshabilita la cuenta despuƩs de INACTIVA
                                dĆ­as de la fecha de caducidad
  -l, --list                    muestra la información de la edad de la cuenta
  -m, --mindays DƍAS_MIN        establece el nĆŗmero mĆ­nimo de dĆ­as antes de
                                cambiar la contraseƱa a DƍAS_MIN
  -M, --maxdays DƍAS_MAX        establece el nĆŗmero mĆ”ximo de dĆ­as antes de
                                cambiar la contraseƱa a DƍAS_MAX
  -R, --root CHROOT_DIR         directory to chroot into
  -W, --warndays DƍAS_AVISO     establece los dĆ­as de aviso de expiración a
                                DƍAS_AVISO

En el artĆ­culo anterior creamos varios usuarios como ejemplo. Si queremos saber los valores de la edad de la cuenta del usuario con LOGIN galadriel:

[root@linuxbox ~]# chage --list galadriel
Último cambio de contraseña             :abr 21, 2017
La contraseƱa caduca                    : nunca
ContraseƱa inactiva                 : nunca
La cuenta caduca                    : nunca
Número de días mínimo entre cambio de contraseña    : 0
Número de días mÔximo entre cambio de contraseña    : 99999
Número de días de aviso antes de que caduque la contraseña  : 7

Esos fueron los valores por defecto que el sistema tenía cuando creamos la cuenta de usuario mediante la utilidad grÔfica de administración de «Usuarios y grupos»:

Para cambiar los valores por defecto del envejecimiento de las contraseƱas, se recomienda editar el archivo /etc/login.defs y modificar la cantidad mƭnima de valores que necesitemos. En ese archivo solo cambiaremos los valores siguientes:

# Password aging controls:
#
#  PASS_MAX_DAYS   Maximum number of days a password may be used.
#  PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#  PASS_MIN_LEN    Minimum acceptable password length.
#  PASS_WARN_AGE   Number of days warning given before a password expires.
#
PASS_MAX_DAYS   99999   # !mas de 273 aƱos!
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7

por los valores que escogimos acorde a nuestro criterio y necesidades:

PASS_MAX_DAYS   42 # 42 dĆ­as continuos que se puede usar el password
PASS_MIN_DAYS   0   # la contraseƱa se puede cambiar en cualquier momento
PASS_MIN_LEN    8   # longitud mƭnima de la contraseƱa
PASS_WARN_AGE   7   # Cantidad de dĆ­as en que el sistema te advierte que
            # debes cambiar la contraseƱa antes de que expire.

El resto del archivo lo dejamos tal y como estaba y recomendamos no cambiar otros parƔmetros hasta que no sepamos bien que estamos haciendo.

Los nuevos valores se tomarÔn en cuenta cuando creemos nuevos usuarios. Si cambiamos la contraseña de un usuario ya creado, se respetarÔ el valor de la longitud mínima de la contraseña.  Si utilizamos el comando passwd en vez de la utilidad grÔfica y escribimos que la contraseña serÔ «legolas17«, el sistema se queja al igual que la herramienta grÔfica «Usuarios y grupos» y nos responde que «De alguna manera, en la contraseña se lee el nombre del usuario» aunque al final acepte esa débil contraseña.

[root@linuxbox ~]# passwd legolas
Cambiando la contraseƱa del usuario legolas.
Nueva contraseƱa: arquero               # tiene menos de 7 caracteres
CONTRASEƑA INCORRECTA: La contraseƱa tiene menos de 8 caracteres
Vuelva a escribir la nueva contraseƱa: legolas17
Las contraseñas no coinciden.               # Lógico ¿no?
Nueva contraseƱa: legolas17
CONTRASEƑA INCORRECTA: De alguna manera, en la contraseƱa se lee el nombre del usuario 
Vuelva a escribir la nueva contraseƱa: legolas17
passwd: todos los símbolos de autenticación se actualizaron con éxito.

Incurrimos en «la debilidad» de declarar una contraseña que incluye el LOGIN del usuario. Esa es una prÔctica no recomendada. Lo correcto sería:

[root@linuxbox ~]# passwd legolas
Cambiando la contraseƱa del usuario legolas.
Nueva contraseƱa: AltosMontes01
Vuelva a escribir la nueva contraseƱa: AltosMontes01
passwd: todos los símbolos de autenticación se actualizaron con éxito.

Para cambiar los valores de expiración del password de galadriel, hacemos uso del comando chage, y solamente debemos cambiar el valor de PASS_MAX_DAYS de 99999 a 42:

[root@linuxbox ~]# chage -M 42 galadriel
[root@linuxbox ~]# chage -l galadriel
Último cambio de contraseña             :abr 21, 2017
La contraseƱa caduca                    : jun 02, 2017
ContraseƱa inactiva                 : nunca
La cuenta caduca                    : nunca
Número de días mínimo entre cambio de contraseña    : 0
Número de días mÔximo entre cambio de contraseña    : 42
Número de días de aviso antes de que caduque la contraseña  : 7

Y asĆ­ sucesivamente, podemos cambiar las contraseƱas de los usuarios ya creados y sus valores de expiración de forma manual, mediante la herramienta grĆ”fica Ā«Usuarios y gruposĀ», o mediante un guión – script que automatice parte del trabajo que no sea interactivo.

  • De esta forma, si creamos los usuarios locales del sistema de forma no recomendada por las prĆ”cticas mas comunes con respecto a la seguridad, podemos cambiar ese comportamiento antes de continuar implementando mas servicios basados en PAM.

Si creamos el usuario anduin con LOGIN «anduin» y contraseña «ElPassword» obtendremos el siguiente resultado:

[root@linuxbox ~]# useradd anduin
[root@linuxbox ~]# passwd anduin
Cambiando la contraseƱa del usuario anduin.
Nueva contraseƱa: ElPassword
CONTRASEƑA INCORRECTA: La contraseƱa no supera la verificación de diccionario - EstĆ” basada en una palabra del diccionario.
Vuelva a escribir la nueva contraseƱa: ElPassword
passwd: todos los símbolos de autenticación se actualizaron con éxito.

O sea, que el sistema es lo suficientemente creativo para indicarnos las debilidades de un password.

[root@linuxbox ~]# passwd anduin
Cambiando la contraseƱa del usuario anduin.
Nueva contraseƱa: AltosMontes02
Vuelva a escribir la nueva contraseƱa: AltosMontes02
passwd: todos los símbolos de autenticación se actualizaron con éxito.

Resumen sobre las PolĆ­ticas

  • Es evidente que la polĆ­tica de complejidad de las contraseƱas, asĆ­ como la de una longitud mĆ­nima de 5 caracteres, estĆ” habilitada por defecto en CentOS. En Debian, la comprobación de la complejidad funciona para los usuarios normales cuando Ć©stos tratan de cambiar su contraseƱa invocando el comando passwd. Para el usuario root, no existen limitaciones por defecto.
  • Es importante conocer las diferentes opciones que podemos declarar en el archivo /etc/login.defs mediante el comando man login.defs.
  • TambiĆ©n, revisar el contenido de los archivos /etc/default/useradd, y ademĆ”s en Debian /etc/adduser.conf.

Usuarios y Grupos del Sistema

En el proceso de instalación del sistema operativo se crean toda una serie de usuarios y grupos que, una literatura denomina Usuarios EstÔndares y otra Usuarios del Sistema. Nosotros preferimos llamarlos Usuarios y Grupos del Sistema.

Como regla, los usuarios del sistema tienen un UID < 1000 y sus cuentas se utilizan por diferentes aplicaciones del sistema operativo. Por ejemplo, la cuenta de usuario «squid» es utilizada por el programa Squid, mientras que la cuenta «lp» se utiliza para el proceso de impresión desde editores de palabras o de texto.

Si queremos listar a esos usuarios y grupos, lo podemos hacer mediante los comandos:

[root@linuxbox ~]# cat /etc/passwd
[root@linuxbox ~]# cat /etc/group

Para nada es recomendable modificar a los usuarios y grupos del sistema. ļ˜‰

Por su importancia, repetimos que en CentOS, FreeBSD, y otros sistemas operativos, se crea el grupo -del sistema- wheel para permitir el acceso como root solamente a los usuarios del sistema que pertenezcan a ese grupo. Lea /usr/share/doc/pam-1.1.8/html/Linux-PAM_SAG.html, y /usr/share/doc/pam-1.1.8/html/Linux-PAM_SAG.html. Debian no incorpora un grupo wheel.

Gestionando las cuentas de usuarios y grupos

La mejor forma de aprender a gestionar las cuentas de usuarios y de grupos es:

  • Practicando el uso de los comandos listados anteriormente, preferentemente en una mĆ”quina virtual y antes de utilizar herramientas grĆ”ficas.
  • Consultando los manuales o man pages de cada comando antes de buscar cualquier otra información en Internet.

La prƔctica es el mejor criterio de la verdad.

Resumen

Por mucho, un sólo artículo dedicado a la Administración de usuarios y grupos locales no es suficiente. DependerÔ del interés personal en aprender y profundizar sobre éste y otros temas relacionados, el grado de conocimiento que adquiera cada Administrador. Sucede igual que con todos los aspectos que hemos desarrollado en la serie de artículos Redes PYMES. De igual manera puedes disfrutar de esta versión en pdf acÔ

Próxima entrega

Continuaremos implementado servicios con autenticación frente a usuarios locales. Instalaremos, entonces, un servicio de mensajería instantÔnea basado en el programa Prosody.

”Hasta pronto!