Administrar cuentas de grupos locales en Linux

Como humanos, cuando descubrimos un nuevo objeto, nuestro cerebro hace varias cosas. Uno, vemos la utilidad del objeto. En segundo lugar, asignamos un grupo al objeto para que sepamos cómo clasificarlo en el futuro. Por ejemplo, si un niño descubre un martillo, generalmente sabe que podría usarse para golpear objetos. Luego asignan el martillo a un grupo. En algunos casos, el niño califica el martillo como una herramienta y solo lo usará para realizar una tarea. En otros, el niño llamará al martillo un juguete. Sin embargo, la utilidad del martillo sigue siendo evidente, así que asegúrate de tener cuidado con ese último niño. Por eso es importante agrupar.

Los grupos en Linux son importantes porque los usuarios están presentes en el sistema para una utilidad definida. Agrupar usuarios por utilidad (o acceso) es una forma fantástica de garantizar que solo los administradores tengan privilegios de administrador y que los usuarios generales solo puedan acceder a los archivos para los que están destinados. Los usuarios se dividen en tres clasificaciones separadas para facilitar un poco el proceso de agrupación:

  • superusuarios - Responsable de la administración del sistema. el raíz cuenta es el superusuario jefe y tiene UID 0.
  • Usuarios del sistema - cuentas de usuario utilizadas por el propio sistema para ejecutar procesos o demonios. Cada uno de estos usuarios tiene sus propios archivos y recursos. Idealmente, los usuarios no inician sesión como usuario del sistema. El rango de UID es 1-999.
  • Usuarios habituales - cuentas que la mayoría de nosotros usamos para hacer nuestro trabajo diario. Están restringidos en su acceso a archivos y sistemas y se les debe otorgar permisos para realizar tareas administrativas. Los UID comienzan en 1000+.

Si desea obtener más información sobre los conceptos básicos de usuarios y grupos, consulte el artículo de Ken Hess Administración de cuentas de usuario con UID y GID. En el resto de este artículo, me centraré en la creación de grupos, la membresía y las credenciales, así como también en cómo asignar privilegios de superusuario a un grupo.

Índice

    Grupo principal

    Todos los usuarios están asignados a un grupo principal de forma predeterminada. Para las cuentas locales, el GID principal es el mismo que se indica en el /etc/passwd archivar. Esto significa que el nombre de usuario y el nombre del grupo son los mismos. También significa que el usuario es el único miembro de este grupo. Por ejemplo:

    [[email protected] ~]# useradd user01
    [[email protected] ~]# su - user01
    [[email protected] ~]$ id
    uid=1002(user01) gid=1002(user01) groups=1002(user01) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

    El efecto secundario de este diseño es que facilita mucho la gestión de permisos de archivos para usuarios y administradores. Si desea agrupar usuarios en un grupo principal para un propósito común, debe crear un grupo y luego asignarle los usuarios deseados.

    Creación de grupos

    Para nuestra demostración, crearé el grupo. demogroup. Puede ver en el resultado que el grupo se ha creado y se le ha asignado el GID 1007:

    [[email protected] ~]# groupadd demogroup
    [[email protected] ~]# tail /etc/group
    cockpit-wsinstance:x:975:
    flatpak:x:974:
    rngd:x:973:
    admin:x:1001:
    user01:x:1002:
    user02:x:1003:
    user03:x:1004:
    user04:x:1005:
    user05:x:1006:
    demogroup:x:1007:

    Ahora cambiemos el GID a 10007:

    [[email protected] ~]$ sudo groupmod -g 10007 demogroup 
    Output Omitted
    [[email protected] ~]$ sudo tail /etc/group
    Output Omitted
    demogroup:x:10007:

    Utilizar el groupmod -g GID groupname sintaxis para cambiar el GID de cualquier grupo si es necesario. Si necesita cambiar el nombre de un grupo, utilice groupmod -n NEWNAME oldname. Aquí un ejemplo:

    [[email protected] ~]$ sudo groupmod -n usergroup demogroup 
    [[email protected] ~]$ sudo tail /etc/group
    Output Omitted
    usergroup:x:10007:

    Tenga en cuenta que hemos renombrado demogroup en usergroup. El grupo es siempre el mismo, como indica el GID 10007.

    Agregar usuarios a un grupo

    Un grupo sin miembros es como un bosque sin árboles. Entonces, ¿cómo se agregan algunos miembros? Fácil de hacer.

    [[email protected] ~]$ sudo usermod -g usergroup user01
    [[email protected] ~]$ sudo usermod -g usergroup user02
    [[email protected] ~]$ sudo usermod -g usergroup user03
    [[email protected] ~]$ sudo usermod -g usergroup user04
    [[email protected] ~]$ sudo usermod -g usergroup user05

    Puedes ver el cambio de GID y nombre del grupo desde nuestra creación usuario01 al comienzo de este ejercicio.

    [[email protected] ~]$ id
    uid=1002(user01) gid=10007(usergroup) groups=10007(usergroup) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

    grupo adicional

    Ahora un usuario también puede pertenecer a un grupo adicional. Un grupo adicional es solo eso: adicional. Un uso muy común de grupos adicionales es asignar privilegios administrativos a través de sudo.

    Por ejemplo, si usuario01 debe cambiar los permisos para otros usuarios en grupo de usuario, sin asignar permisos de administrador a todo el grupo, asignamos usuario01 a un grupo adicional con permisos de administrador. En muchos sistemas, el rueda grupo se utiliza para tales ocasiones.

    Para agregar rueda como un grupo complementario a usuario01:

    [[email protected] ~]$ sudo usermod -aG wheel user01
    [[email protected] ~]$ su - user01
    Output Omitted
    [[email protected] ~]$ id
    uid=1002(user01) gid=10007(usergroup) groups=10007(usergroup),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

    OBSERVACIÓN: El -a opción obliga usermod en modo Si la -a no se utiliza, el usuario se elimina de cualquier otro grupo adicional no incluido en el -G lista de opciones.

    Ahora puedes ver que usuario01 tiene un grupo principal (grupo de usuario) y un grupo adicional (rueda).

    Configuración del grupo Sudo

    ¿Qué pasaría si diéramos privilegios de administrador a todo el grupo de usuario? Para hacer esto, necesitamos crear el /etc/sudoers.d/usergroup archivar:

    [[email protected] ~]# echo "%usergroup ALL=(ALL) ALL" >> /etc/sudoers.d/usergroup
    [[email protected] ~]# su - user02
    [[email protected] ~]$ sudo cat  /etc/sudoers.d/usergroup
    [sudo] password for user02:  
    %usergroup ALL=(ALL) ALL

    Puedes ver arriba usuario02, un miembro de grupo de usuario, ahora tiene privilegios de administrador. Para obtener más información sobre los privilegios de administrador y el archivo sudoers, consulte mi artículo anterior Conceptos básicos de la línea de comandos de Linux: sudo.

    ¿Por qué debería importarte?

    Si te estás haciendo la pregunta anterior, piensa concretamente en los siguientes conceptos: El uso de grupos en Linux es una parte fundamental del sistema operativo e incluso es necesario para ejecutar varias aplicaciones. La asignación de usuarios a grupos fácilmente controlables es una excelente manera de aumentar rápidamente la seguridad de sus sistemas y administrar varias cuentas de usuario. Como se indicó anteriormente, puede permitir que ciertos usuarios obtengan privilegios de administrador para completar un trabajo específico sin darles acceso de root al sistema. Si podemos mantener a nuestros usuarios organizados y productivos, mientras nos aseguramos de que solo tengan acceso a lo que necesitan, haremos nuestras vidas más fáciles y nuestras relaciones entre usuarios y administradores serán un poco menos estresantes. Su organización se beneficiará de estas mejoras desde el principio, lo sepa o no.

    Artículos de interés

    Subir