Linux permite a multiples usuarios tener acceso al sistema operativo a la vez. La configuración de permisos proteje a los usuarios de ellos mismos. Los usuarios pueden ser asignados a grupos para compartir privilegios, seguridad y acceso. El acceso de archivos y dispositivos puede ser restringido en base a usuarios específicos o grupos de usuarios.

Los grupos se usan con frecuencia para permitir que ciertos usuarios modifiquen un archivo o directorio.

Los dos tipos de grupos principales son grupos primarios y grupos secundarios. El grupo primario de un usuario es el grupo por defecto con el que se asocia la cuenta, generalmente comparte el mismo nombre que el usuario. Los directorios y los archivos que el usuario crea tendrán asignados este grupo. Un grupo secundario es cualquier grupo adicional del que un usuario sea parte.

Creación de grupos

Creemos dos grupos llamados "writers" y "editors". Usa el comando groupadd (es posible que necesites usar el comando sudo al inicio para tener el permiso adecuado para crear el grupo):

groupadd writers
groupadd editors

Creación de usuarios

Puede que ya tengas usuarios para agregar a tu grupo. Si no, aquí está la sintaxis básica para crear un usuario con el comando useradd:

useradd [options] username

Aquí está para crear un usuario llamado "quincy". El argumento -m le dice al comando que cree el directorio principal del usuario con el mismo nombre que el usuario. El argumento con su valor -p p4ssw0rd crea la contraseña "p4ssw0rd" para el usuario.

useradd -m quincy -p password

Los usuarios serán capaces de cambiar su contraseña con el comando passwd. Para ello, tendrán que ingresar su contraseña actual en ese momento y luego definir una nueva.

Agregar un usuario a un grupo

Puedes usar el comando usermod para agregar un usuario a un grupo. Así es cómo agregaríamos el usuario "quincy" al grupo "writers". El argumento -a significa "añadir" (append) y el argumento -G agrega un grupo como un grupo secundario.

usermod -a -G writers quincy

Cuando un usuario es creado con el comando adduser, este es automáticamente asignado a un grupo primario con el mismo nombre que el usuario. En nuestro ejemplo, actualmente el usuario "quincy" es parte de un grupo primario "quincy" y de un grupo secundario "writers".

También puedes agregar un usuario a muchos grupos a la vez al separar por comas los nombres de los grupos, así -G group1,group2,group3.

El siguiente comando cambia el grupo primario del usuario "quincy" de "quincy" a "editors":

usermod -g editors quincy

Remover un usuario de un grupo secundario

Para remover un usuario de un grupo secundario necesitas sobreescribir los grupos a los que actualmente este usuario pertenece, por una nueva lista de grupos dónde no esté el grupo que se quiere remover.

Primero, usa el comando id para verificar a cuáles grupos secundarios pertenece un usuario:

id -nG quincy

Digamos que este comando nos devuelve editors writers, esto indica que el usuario "quincy" es parte de los grupos "editors" y "writers". Si quieres remover al usuario del grupo "writers", usa el comando:

usermod -G editors quincy

Ese comando establece como grupo secundario del usuario "quincy" como "editors". Ya que el argumento -a no fue usado, los grupos previos fueron sobreescritos.

Conclusión

Deberías ahora estar listo para manejar usuarios y grupos en Linux. El siguiente paso es determinar qué privilegios debería tener cada grupo.

Traducido del artículo de Beau Carnes - Linux User Groups Explained: How to add a new group, a new group member, and change groups