Documentation for a newer release is available. View Latest

Administrar Usuarios y Grupos

indexterm:[groups,introducing]indexterm:[users,introducing]indexterm:[users,UID]indexterm:[groups,GID] El control de los usuarios y de los grupos es un elemento central en la administración del sistema Fedora. Este capítulo explica como añadir, administrar y borrar usuarios y grupos en la interfaz gráfica de usuario y en la línea de comandos y cubre puntos avanzados como la creación de directorios de grupo.

Introducción a los Usuarios y Grupos

Mientras que los usuarios pueden ser bien personas (lo que significa cuentas asignadas a usuarios físicos) o bien cuentas que existen para que las usen aplicaciones específicas, los grupos son expresiones lógicas de organización asignando usuarios juntos para un propósito común. Los usuarios dentro de un grupo comparten los mismos permisos para leer, escribir o ejecutar ficheros que los que tenga el grupo.

Cada usuario se asocia con una única identificación numérica llamada ID de usuario (UID). Igualmente, cada grupo se asocia con una ID de grupo (GID). Un usuario que crear un archivo es también el propietario y el grupo propietario de ese fichero. Al archivo se le asignan permisos separados de lectura, escritura y ejecución para el usuario, el grupo y para cualquier otro. El propietario del fichero solo puede ser cambiado por root y los permisos de acceso pueden ser cambiados tanto por el usuario root como por el propietario del fichero.

Además, Fedora soporta listas de control de acceso (ACLs) para archivos y directorio que permiten establecer permisos para usuarios específicos además del propietario. Para más información sobre esta característica vea el capítulo Listas del Control de Acceso de la Guía de Administradores del Sistema Red Hat Enterprise Linux 7.

Grupos Privados de Usuario

Fedora utiliza un esquema grupo privado de usuario (UPG) que hace a los grupos UNIX más fáciles de administrar. Cada vez que se añade un nuevo usuario al sistema se crea un grupo privado de usuario. Tiene el mismo nombre que el usuario creado y ese usuario es el único miembro del grupo privado de usuario.

Los grupos privados de usuario hacen seguro establecer los permisos predeterminados para un archivo o directorio de nueva creación, permitiendo tanto al usuario como al grupo de ese usuario hacer modificaciones al archivo o directorio.

El ajuste que determina que permisos se aplican a un archivo o directorio creado nuevo se llama umask y está configurado en el archivo /etc/bashrc. Tradicionalmente en los sistemas basados en UNIX la umask se establece a 022, que permite que solo el usuario que ha creado el archivo o directorio haga modificaciones. Bajo este esquema todos los demás usuarios, incluyendo los miembros del grupo del creador, no tienen permitido hacer ninguna modificación. Sin embargo, bajo el esquema UPG esta “protección de grupo” no es necesaria puesto que cada usuario tiene su propio grupo privado.

Una lista de todos los grupos está almacenada en el archivo de configuración /etc/group.

Contraseñas Ocultas

En entornos con múltiples usuarios es muy importante usar contraseñas ocultas proporcionadas por el paquete shadow-utils para mejorar la seguridad de los archivos de autenticación del sistema. Por esta razón el programa de instalación habilita las contraseñas ocultas de forma predeterminada.

Lo que sigue es una lista de las ventajas que las contraseñas ocultas tienen sobre la forma tradicional de almacenamiento de las contraseñas en sistemas basados en UNIX:

  • Las contraseñas fantasma mejoran la seguridad del sistema moviendo los hash del archivo legible por todos /etc/passwd a /etc/shadow,que solo es legible por el usuario root.

  • La contraseñas fantasma almacenan información sobre la caducidad de las contraseñas.

  • Las contraseñas fantasma permiten al archivo /etc/login.defs aplicar las políticas de seguridad.

La mayoría de las utilidades proporcionadas por el paquete shadow-utils trabajan apropiadamente tanto si las contraseñas fantasma están habilitadas como si no. Sin embargo, ya que la información de caducidad de la contraseña se almacena exclusivamente en el archivo /etc/shadow algunas utulidades y comandos no funcionan si no se han habilitado primero las contraseñas fantasma:

  • La utilidad chage para establecer los parámetros de caducidad de la contraseña. Para detalles vea la sección Seguridad de la Contraseña en la [citetitle]_Guía de Seguridad Red Hat Enterprise Linux 7 _.

  • La utilidad gpasswd para la administración del archivo /etc/group.

  • El comando usermod con la opción -e, --expiredate o -f, --inactive.

  • El comando useradd con la opción -e, --expiredate o -f, --inactive.

Administrando Usuarios en un Entorno Gráfico

La utilidad Usuarios le permite visualizar, modificar, añadir y borrar usuarios locales con una interfaz gráfica de usuario.

Utilizando la Herramienta de Ajustes de Usuario

Presione la tecla Super para entrar en la Visión General de Actividades, teclee Usuarios y pulse la tecla Enter. Aparece la herramienta de ajustes de Usuarios. La tecla Super aparece de diversas formas, dependiendo del teclado y otro hardware pero con frecuencia es la tecla Windows o Command y normalmente está a la izquierda de la Barra Espaciadora.

Para hacer cambios en las cuentas de usuarios, seleccione primero el botón Desbloquear…​ y autentifiquese como se indica en la caja de diálogo que aparece. Advierta que a menos que tenga privilegios de superusuario, la aplicación le indicará que se autentifique como root. Para añadir y borrar usuarios seleccione los botones + y - respectivamente. Para añadir el usuario al grupo administrativo wheel, cambie el Tipo de Cuenta de Estándar a Administrador. Para editar el ajuste de idioma del usuario, seleccione el idioma y aparece un menú desplegable.

La herramienta de ajustes de Usuarios
Figura 1. La Herramienta de Ajustes de Usuario

When a new user is created, the account is disabled until a password is set. The Add User menu contains the options to set a password by the administrator immediately, or to allow the user to choose a password at the first login.

Usando las Herramientas de Línea de Comando

Además de la herramienta de ajustes Usuarios descrita en Administrando Usuarios en un Entorno Gráfico, que esta diseñada para una administración básica de usuarios, usted puede utilizar herramientas de línea de comandos para administrar usuarios y grupos las cuales se listan en Utilidades de línea de comandos para la administración de usuarios y grupos.

Table 1. Utilidades de línea de comandos para la administración de usuarios y grupos
Utilidades Descripción

id

Muestra las IDs de usuario y grupo.

useradd, usermod, userdel

Utilidades estándar para el añadido, la modificación y el borrado de cuentas de usuario.

groupadd, groupmod, groupdel

Utilidades estándar para el añadido, la modificación y el borrado de grupos.

gpasswd

Utilidad estándar para la administración del archivo de configuración /etc/group.

pwck, grpck

Utilidades que se pueden usar para la verificación de la contraseña, el grupo y los archivos fantasma asociados.

pwconv, pwunconv

Utilidades que pueden ser usadas para la conversión de contraseñas a contraseñas fantasma o volver las contraseñas fantasma a contraseñas estándar.

grpconv, grpunconv

Similar a la anterior, estas utilidades se pueden usar para la conversión de información fantasma a cuentas de grupo.

Añadiendo un Nuevo Usuario

Para añadir un nuevo usuario al sistema teclee lo siguiente en el símbolo del sistema como root:

useradd options username

…donde options son opciones de línea de comandos descritas en Opciones comunes de línea de comando para useradd. De modo predeterminado, el comando useradd crea una cuenta de usuario bloqueada. Para desbloquear la cuenta ejecute como root el siguiente comando para asignar una contraseña:

passwd username

Opcionalmente usted puede establecer una política de caducidad de la contraseña. Vea en Habilitando la Caducidad de la Contraseña información sobre como habilitar la caducidad de la contraseña.

Table 2. Opciones de línea de comandos comunes para useradd
Opción Descripción

-c 'comment'

comment puede ser reemplazado con cualquier cadena. Esta opción se usa generalmente para especificar el nombre completo de un usuario.

-d home_directory

Directorio home a ser usdo en lugar del predeterminado /home/username/.

-e date

Fecha para deshabilitar la cuenta con el formato YYYY-MM-DD.

-f days

Número de días que pasan desde que la contraseña expire hasta que se deshabilite la cuenta. Si se especifica 0 la cuenta es deshabilitada inmediatamente después de que expire la contraseña. Si se especifica -1 la cuenta no se dehabilita después de que expire la contraseña.

-g group_name

Nombre o número del grupo para la grupo predeterminado (primario) del usuario. El grupo debe existir antes de ser especificado aquí.

-G group_list

Lista, separada por comas, de nombres o número de grupo adicionales (suplementarios, distintos al predeterminado) de los que el usuario es miembro. Los grupos deben existir antes de ser especificados aquí.

-m

Crear el directorio home si no existe.

-M

No crear el directorio home.

-N

No crear grupo privado de usuario para el usuario.

-p password

La contraseña encriptada con crypt.

-r

Crear una cuenta de sistema con una UID menor de 1000 y sin directorio home.

-s

Shell de acceso del usuario que de forma predeterminada es /bin/bash.

-u uid

ID de usuario para el usuario que debe ser única y mayor de 999.

Las opciones de línea de comando asociadas con el comando usermod son esencialmente las mismas. Advierta que si usted desea añadir un usuario a otro grupo suplementario necesita usar la opción -a, --append con la opción -G. De otro odo la lista de grupos suplementarios para el usuario será sobrescrita por aquellos especificados por el comando usermod -G.

Explicando el Proceso

Los siguientes pasos explican lo que sucede si el comando useradd juan se envía sobre un sistema que tiene las contraseñas fantasma habilitadas:

  1. Se crea una nueva línea para juan en /etc/passwd:

    juan:x:1001:1001::/home/juan:/bin/bash

    La línea tiene las siguientes características:

    • Empieza con el nombre de usuario juan.

    • Hay una x para el campo contraseña indicando que el sistema está usando contraseñas en la sombra.

    • Se crea una UID mayor de 999. Bajo Fedora, las UIDs por debajo de 1000 se reservan para el uso del sistema y no deberían ser asignadas a los usuarios.

    • Se crea un GID mayor de 999. Bajo Fedora, las GIDs por debajo de 1000 se reservan para el uso del sistema y no deberían ser asignadas a los usuarios.

    • La información adicional GECOS se deja en blanco. El campo GECOS se puede usar para proporcionar información adicional sobre el usuario, como su nombre completo o su número de teléfono.

    • El directorio home para juan se establece en /home/juan/.

    • La shell predeterminada se establece en /bin/bash.

  2. Se crea una nueva línea para juan en /etc/shadow:

    juan:!!:14798:0:99999:7:::

    La línea tiene las siguientes características:

    • Empieza con el nombre de usuario juan.

    • Aparecen dos símbolos de exclamación (!!) en el campo contraseña del archivo /etc/shadow, que bloquea la cuenta.

      Nota

      Si se ha pasado una contraseña encriptada usando la indicación -p se coloca en el archivo /etc/shadow en una línea nueva para el usuario.

    • Se ha establecido que la contraseña no expire nunca.

  3. Se crea una nueva línea para un grupo llamado juan en /etc/group:

    juan:x:1001:

    Un grupo con el mismo nombre que el usuario se denomina grupo privado de usuario. Para mas información sobre los grupos privados de usuario vea Grupos Privados de Usuario.

    La linea creada en /etc/group tiene las siguientes características:

    • Empieza con el nombre del grupo juan.

    • Aparece una x en el campo contraseña indicando que el sistema está usando contraseñas de grupo en la sombra.

    • El GID coincide con el listado para juan`en el grupo principal de en `/etc/passwd.

  4. Se crea una nueva línea para un grupo llamado juan en /etc/gshadow:

    juan:!::

    La línea tiene las siguientes características:

    • Empieza con el nombre del grupo juan.

    • Aparece un símbolo de exclamación (!) en el campo contraseña del archivo /etc/gshadow, que bloquea el grupo.

    • Los demás campos quedan en blanco.

  5. Se crea un directorio para el usuario juan en el directorio /home/:

    ~]# ls -ld /home/juan
    drwx------. 4 juan juan 4096 Mar  3 18:23 /home/juan

    Este directorio es propiedad del usuario juan y del grupo juan. Tiene privilegios de lectura, escritura y _ejecución solo para el usuario juan. Los demás permisos están denegados.

  6. Los archivos dentro del directorio /etc/skel/ (que contiene los ajustes predeterminados de usuario) se copian en el nuevo directorio /home/juan/. Los contenidos de /etc/skel/ pueden variar dependiendo de las aplicaciones instaladas:

    ~]# ls -la /home/juan
    total 24
    drwx------. 4 juan juan 4096 Mar  3 18:23 .
    drwxr-xr-x. 5 root root 4096 Mar  3 18:23 ..
    -rw-r--r--. 1 juan juan   18 Jul 09 08:43 .bash_logout
    -rw-r--r--. 1 juan juan  176 Jul 09 08:43 .bash_profile
    -rw-r--r--. 1 juan juan  124 Jul 09 08:43 .bashrc
    drwxr-xr-x. 4 juan juan 4096 Jul 09 08:43 .mozilla

DEn este punto, existe en el sistema una cuenta bloqueada llamada juan. Para activarla, el administrador debe después asignar una contraseña a la cuenta usando el comando passwd y opcionalmente establecer una directrices de caducidad.

Añadiendo un Nuevo Grupo

Para añadir un nuevo grupo al sistema, teclee lo siguiente en el símbolo del sistema como root:

groupadd options group_name

…donde options son las opciones de línea de comandos descritas en Opciones de línea de comandos comunes para groupadd.

Table 3. Opciones de línea de comandos comunes para groupadd
Opción Descripción

-f, --force

Cuando se usa con -g gid y gid ya existe, groupadd elegirá otra gid única para el grupo.

-g gid

ID de grupo para el grupo, que debe ser única y mayor de 999.

-K, --key key=value

Anula /etc/login.defs predeterminado.

-o, --non-unique

Permite la creación de grupos con GID dupicada.

-p, --password password

Usa esta contraseña encriptada para el nuevo grupo.

-r

Crea un grupo de sistema con una GID menor de 1000.

Habilitando la Caducidad de la Contraseña

Por razones de seguridad es aconsejable pedir a los usuarios que cambien su contraseña periódicamente. Esto su puede hacer usando el comando chage .

Se debe habilitar a las contraseñas en la sombra para que utilicen chage

Las contraseñas en la sombra deben ser habilitadas para que utilicen el comando chage. Para mas información vea Contraseñas en la Sombra.

Para configurar la expiración de contraseña para un usuario desde el símbolo del sistema, ejecute como root el siguiente comando:

chage options username

…donde options son las opciones de línea de comandos como se describen en Opciones de línea de comandos de chage. Cuando el comando chage es seguido directamente por un nombre de usuario (esto es, cuando no se especifican opciones de línea de comandos), muestra los valores de caducidad de contraseña del usuario en ese momento y le permite cambiar esos valores interactivamente.

Table 4. Opciones de línea de comandos de chage
Opción Descripción

-d days

Especifica el número de días desde el 1 de Enero de 1970 en que la contraseña se cambió.

-E date

Especifica la fecha en la que la cuenta es bloqueada, en el formato YYYY-MM-DD. En lugar de la fecha, también se puede usar el número de días desde el 1 de Enero de 1970.

-I days

Especifica el número de días inactivos después de que la contraseña haya expirando antes de bloquear la cuenta. Si el valor es 0, la cuenta no se bloqueará después de que expire la contraseña.

-l

Lista los ajustes de caducidad de la cuenta.

-m days

Especifica el mínimo número de días después de los cuales el usuario debe cambiar las contraseñas. Si el valor es 0, la contraseña no expira.

-M days

Especifica el máximo número de días para los que es válida la contraseña. Cuando el número de días especificados con esta opción más el número de días especificados con la opción -d es menor que el día actual, el usuario debe cambiar la contraseña antes de utilizar la cuenta.

-W days

Especifica el número de días antes de la fecha de expiración para advertir al usuario.

Usted puede configurar que la contraseña expira el primer día que el usuario acceda. Esto obliga a los usuarios a cambiar la contraseña inmediatamente.

  1. Ajuste de una contraseña inicial. Hay dos formas comunes para este paso: usted puede o bien asignar una contraseña predeterminada o puede usar una contraseña nula.

    Para asignar una contraseña predeterminada teclee lo siguiente como root en el símbolo del sistema :

    passwd username

    Para asignar una contraseña nula en su lugar, utilice el siguiente comando:

    passwd -d username
    Evite utilizar contraseñas nulas siempre que sea posible

    La utilización de una contraseña nula, mientras sea conveniente, es una práctica altamente insegura, puesto que cualquier tercero puede acceder antes y acceder al sistema utilizando un nombre de usuario inseguro. Asegúrese siempre de que el usuario está preparado antes de desbloquear una cuanta con una contraseña nula.

  2. Fuerce la expiración inmediata de la contraseña ejecutando el siguiente comando como root:

    chage -d 0 username

    Este comando establece el valor de la fecha en que se cambió por última vez la contraseña a la época (1 de Enero de 1970). Este valor fuerza la expiración inmediata de la contraseña sin importar que la política de caducidad de la contraseña, si la hay, esté puesta.

Tras el inicio de la primera sesión, se la pide al usuario una nueva contraseña.

Habilitando los Cierre de Sesión Automáticos

Especialmente cuando el usuario ha accedido como root, una sesión no atendida puede suponer un riesgo de seguridad significativo. Para reducir este riesgo, usted puede configurar el sistema para que automáticamente finalice la sesión de los usuarios inactivos después de un período fijo de tiempo:

  1. Asegúrese de que está instalado el paquete screen. Puede hacer esto ejecutando como root el siguiente comando:

    dnf install screen

    Para más información sobre la instalación de paquetes con DNF, vea Instalando Paquetes.

  2. Como root, añada la siguiente línea al principio del archivo /etc/profile para asegurar que el procesado de este archivo no pueda ser interrumpido:

    trap "" 1 2 3 15
  3. Añada las siguientes líneas al final del archivo /etc/profile para arrancar una sesión screen cada vez que un usuario acceda en una consola virtual o remotamente:

    SCREENEXEC="screen"
    if [ -w $(tty) ]; then
      trap "exec $SCREENEXEC" 1 2 3 15
      echo -n 'Starting session in 10 seconds'
      sleep 10
      exec $SCREENEXEC
    fi

    Tenga en cuenta que cada vez que se inicia una nueva sesión se mostrará un mensaje y el usuario tendrá que esperar diez segundos. Para ajustar el tiempo de espera antes de iniciar una sesión, cambie el valor que sigue al comando sleep command.

  4. Añada las siguientes líneas al archivo de configuración /etc/screenrc para cerrar la sesión screen después de un período dado de inactividad:

    idle 120 quit
    autodetach off

    Esto establecerá el tiempo límite a 120 segundos. Para ajustar este límite, cambie el valor que sigue a la directiva idle.

    Alternativamente, usted puede configurar el sistema para que solo bloquee la sesión usando las siguiente líneas en su lugar:

    idle 120 lockscreen
    autodetach off

    De este modo, se requerirá una contraseña para desbloquear la sesión.

Los cambios tendrán efecto la próxima vez que el usuario acceda al sistema.

Crear directorios de grupo

A los administradores de sistemas les gusta, normalmente, crear un grupo para cada proyecto principal y asignar gente al grupo cuando ellos necesitan acceder a los archivos de ese proyecto. Con este esquema la administración de los archivos es difícil; cuando alguien crea un archivo se asocia con el grupo primario al que pertenecen. Cuando una única persona trabaja en múltiples proyectos, llega a ser difícil asociar los archivos correctos con los grupos correctos. Sin embargo, con el esquema UPG los grupos son automáticamente asignados a los ficheros creados dentro del directorio con el bit setgid establecido. El bit setgid hace el manejo de grupo e proyectos que comparten un directorio común muy sencillo puesto que cualquier archivo que cree un usuario dentro del directorio es propiedad del grupo que tiene el directorio en propiedad.

Por ejemplo, un grupo de personas necesitan trabajar sobre archivos del directorio /opt/myproject/. Algunas personas tienen confianza para modificar los contenidos de este directorio, pero no todos.

  1. Como root, crear el directorio /opt/myproject/ tecleando lo siguiente en el símbolo del sistema:

    mkdir /opt/myproject
  2. Añadir el grupo myproject al sistema:

    groupadd myproject
  3. Asociar los contenidos del directorio /opt/myproject/ con el grupo myproject:

    chown root:myproject /opt/myproject
  4. Permitir que usuarios del grupo creen archivos dentro del directorio y establecer el bit setgid:

    chmod 2775 /opt/myproject

    En este punto, todos los miembros del grupo myproject pueden crear y editar archivos en el directorio /opt/myproject/ sin que el administrador tenga que cambiar los permisos cada vez que los usuarios escriban nuevos archivos. Para verificar que los permisos han sido establecidos correctamente, ejecute el siguiente comando:

    ~]# ls -ld /opt/myproject
    drwxrwsr-x. 3 root myproject 4096 Mar  3 18:31 /opt/myproject
  5. Añadir usuarios al grupo myproject:

    usermod -aG myproject username

Recursos Adicionales

Para más información sobre como administrar usuarios y grupos en Fedora, vea los recursos listados abajo.

Documentación Instalada

Para información sobre diversas utilidades para administrar usuarios y grupos, vea las siguientes páginas de manual:

  • useradd(8) — La página de manual para el comando useradd documenta como usarla para crear nuevos usuarios.

  • userdel(8) — La página de manual para el comando userdel documenta como usarla para borrar usuarios.

  • usermod(8) — La página de manual para el comando usermod documenta como usarla para modificar usuarios.

  • groupadd(8) — La página de manual para el comando groupadd documenta como usarla para crear nuevos grupos.

  • groupdel(8) — La página de manual para el comando groupdel documenta como usarla para borrar grupos.

  • groupmod(8) — La página de manual para el comando groupmod documenta como usarla para modificar la membresía del grupo.

  • gpasswd(1) — La página de manual para el comando gpasswd documenta como manejar el archivo /etc/group.

  • grpck(8) — La página de manual para el comando grpck documenta como usarlo para verificar la integridad del archivo /etc/group.

  • pwck(8) — La página de manual para el comando pwck documenta como usarlo para verificar la integridad de los archivos /etc/passwd y /etc/shadow.

  • pwconv(8) — La página de manual para los comandos pwconv, pwunconv, grpconv y grpunconv documenta como convertir información para contraseñas y grupos en fantasma.

  • id(1) — La página de manual para el comando id documenta como visualizar las IDs de usuario y grupo.

Para información relativa a los archivos de configuración, vea:

  • group(5) — La página de manual para el archivo `/etc/group`documenta como usar este archivo para definir grupos del sistema.

  • passwd(5) — La página de manual para el archivo /etc/passwd documenta como usar este archivo para definir información del usuario.

  • shadow(5) — La página de manual para el archivo /etc/shadow documenta como usar este archivo para establecer contraseñas e información de caducidad de cuentas para el sistema.