La seguridad informática básicamente busca controlar los siguientes aspectos:
- Confidencialidad: que la información esté protegida de intrusos.
- Integridad: que los datos en estado de almacenamiento o transmisión/recepción se encuentren en estado óptimo.
- Disponibilidad: que la información no esté restringida a aquellos usuarios/aplicaciones reales del sistema.
Este pequeño tip de información técnica sobre el archivo
/etc/passwd te permitirá comprender como linux controla la confidencialidad de los datos y la disponibilidad de archivos y servicios.
En el archivo /etc/passwd se localiza toda la información de los usuarios del sistema. Por ejemplo, si damos como root el siguiente comando:
# cat /etc/passwd
Veremos algo como esto:
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown mail:x:8:12:mail:/var/spool/mail:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin rpm:x:37:37::/var/lib/rpm:/bin/bash sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin desktop:x:80:80:desktop:/var/lib/menu/kde:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash nkt:x:500:500:liam:/home/nkt:/bin/bash
Cada linea del archivo representa un registro único constituido por los campos (cada cadena separada por el símbolo de dos puntos ":") que representan la información del usuario. Analicemos la penúltima línea para el usuario (cliente) mysql.
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
El primer campo es el nombre del usuario y debe ser único.
mysql:
El segundo campo es la contraseña cifrada (en un futuro profundizaremos en el ciframiento).
x:
(en el caso de las mas modernas distribuciones de linux, existe un archivo oculto /etc/shadow, donde se almacenan las contraseñas (que analizaremos en un próximo artículo) para evitar que una visualización del /etc/passwd permita realizar operaciones de crack de contraseñas por fuerza bruta, por eso el caracter visible en /etc/passwd es "x").
El tercer campo es el ID de usuario que debe ser único y es usado por el sistema para controlar accesos a archivos y servicios.
27:
El cuarto campo es el ID de grupo.
27:
El quinto campo es el comentario, que es opcional y puede ser cualquier cosa, aunque en un sistema linux organizado es por norma el nombre real del usuario.
MySQL Server:
El sexto campo es el path o ruta del directorio personal donde el usuario se encontrará al iniciar una sesión y podrá almacenar su información:
/var/lib/mysql:
El séptimo campo corresponde al shell por defecto que se lanza para ese usuario al iniciar sesión y desde donde podrá ejecutar los respectivos comandos:
/bin/bash
Existen varios tipos de shell, sh, ksh, bash, csh, tcsh, etc, aunque la utilizada por defecto por los sistemas linux es /bin/bash.
Las modificaciones del archivo /etc/passwd se remiten al root por considerarse operaciones críticas del sistema. Por recomendación, la gestión de usuario debe realizarse vía comandos del shell (adduser, deluser, etc.)o a través del centro de control gráfico. Las modificaciones manuales de este archivo requieren cierta experiencia y conocimiento del sistema por parte del root.
Para mas información: Hacker en Linux. B. Hatch, J. Lee, G. Kurtz. Cap I.