En Linux y en otros sistemas operativos se cuenta con la administración de grupos y usuarios.
¿De que me sirve saber manipular usuarios y grupos si soy desarrollador?
Esa pregunta quizás nunca me la hice por un hecho de que soy curioso cuando quiero entender algo.
Ocurre que cuando desarrollamos una aplicación, no solo basta con programar su código, también tenemos que hacer un despliegue de la aplicación, configurar el servidor web, trazar una capa de seguridad, entre otros temas.
Un sysAdmin es el que se encarga de este tipo de tareas, sin embargo si creas aplicaciones y las quieres desplegar necesitas conocer mínimo como funcionan los usuarios y grupos
Ocurre lo siguiente en Linux muchos servicios hacen uso de su propio usuario, muy aparte ciertos comandos también están asociados a ciertos grupos en particular, si esto esta mal configurado, el servidor estará expuesto a ciber ataques. Muy aparte de que esto viene acompañado con los permisos, pero eso es otro tema.
Por lo mencionado, el conocer como se manejan los usuarios y grupos es muy importante.
Casos desastrosos
En mi experiencia me he topado con pocos casos donde veo y digo este sistema funciona de pura suerte y si no fue atacado, también.
- No se configura un nuevo usuario y se usa el por defecto, para distribuciones basadas en debian es ubuntu.
- No bloquear el usuario root para conexiones remotas.
- Habilitar todos los permisos a rutas protegidas.
- Desplegar aplicaciones con el comando sudo.
- Remover el usuario web-server www-data por el usuario local.
Usuarios
Un usuario permite separar las responsabilidades en el sistema
De acuerdo a su configuracion y si el usuario va a ser administrado, este contara con una ubicacion en /home
>id
uid=*** gid=*** groups=*,*,...
UID | Identificador unico del sistema, por lo general en distribuiciones basadas en debian inician con el N° 1000 |
GID | Indentificador unico del sistema del grupo, al crearse un usuario, este le crea un grupo |
GROUPS | Los grupos al cual pertenece el usuario |
Archivos que contienen información necesaria de los usuarios
/etc/passwd
/etc/shadow
Estos solo pueden ser manipulados por un usuario administrador
passwd
contiene información del usuario
name:password:UID:GID:GECOS:directory:shell
Gecos hace referencia a la informacion adicional como telefono, nombre, etc.
Shell es la shell que usara el usuario, en ubuntu por defecto es bash
shadow
contiene la información de claves de los usuarios,
username:password
- Si el campo password tiene un * este nunca a tenido una clave.
- Si el campo password tiene un ! este se encuentra bloqueado.
mark:$6$.n.:17736:0:99999:7:::
[--] [----] [---] - [---] ----
| | | | | |||+-----------> 9. Unused
| | | | | ||+------------> 8. Expiration date
| | | | | |+-------------> 7. Inactivity period
| | | | | +--------------> 6. Warning period
| | | | +------------------> 5. Maximum password age
| | | +----------------------> 4. Minimum password age
| | +--------------------------> 3. Last password change
| +---------------------------------> 2. Encrypted Password
+----------------------------------------> 1. Username
Grupos
Características a destacar de los grupos:
- Permite agrupar a los usuarios
- Permite el acceso tanto de lectura o ejecucion, a carpetos o archivos, esto solo a los usuarios que pertenezcan a dicho grupo
- Son usados por servicios externos, ejemplo docker, este tiene su propio grupo y para usar el docker engine necesitas pertencer a dicho grupo.
Los grupos se dividen en dos:
- Grupos primarios – Es el grupo que se crea al crear el usuario, solo puede haber uno, el identificador lo encontramos en el archivo
/etc/passwd gid
De igual forma tambien se puede verificar este en la ruta/etc/group
- Grupos suplementarios – Grupos que son gestionados en el archivo
/etc/group
se puede añadir mas ussuarios a un grupo
Archivos que contienen la informacion de grupos
/etc/group
gestion de grupos
/etc/gshadow
claves, comunmente no se usa este fichero, solo paara casos especificos
Archivo group
GROUP | Nombre del grupo |
PASSWD | por lo general no se usa |
GID | identificador unico |
MEMBERS | uno o mas usuarios |
Bueno aca practicamente deje colocado lo que conozco sobre usuarios y grupos, en otro articulo comentare sobre los permisos, ya que este es un tema complementario a los grupos y usuarios. Si llegaste hasta aca gracias por leer este articulo.
Leave a Reply