Uno de los aspectos que suelen causar confusión entre los usuarios de, prácticamente, cualquier tipo de sistema operativo son los permisos de las carpetas y archivos, una propiedad que se utiliza para garantizar que determinados usuarios o grupos de usuarios tengan acceso a determinados archivos o carpetas o puedan realizar modificaciones. Ya sea en Unix, sistemas Linux o en Mac OS X, cualquier archivo estará sujeto a unos permisos que se verifican cada vez que intentamos acceder a éste y, en el caso que nuestro usuario tenga pocos privilegios, podemos llegar a toparnos con el molesto mensaje de "Acceso Denegado".
Si eres un usuario con experiencia, seguramente todo lo que vamos a comentar te suene familiar pero, bajo mi punto de vista, es un asunto que vale la pena repasar y, sobre todo, puede servir de ayuda a todos los que están empezando a administrar sus equipos o se animan a dar sus primeros pasos con alguna distribución GNU/Linux.
¿Qué son los permisos de los archivos? ¿Para qué sirven?
Aunque hoy en día los permisos de los archivos y carpetas nos puedan resultar algo dentro de lo cotidiano, sistemas operativos como MS-DOS, Windows 95 o Windows 98 carecían de este control de acceso a los archivos. Por afinar un poco, nos vamos a centrar en el esquema que suele dar más dolores de cabeza a los usuarios, es decir, el que tradicionalmente ha estado presente en Unix y sistemas compatibles POSIX, como Linux y Mac OS X.
Los permisos definen, de una manera simple y efectiva, reglas de acceso en lectura (r), escritura (w) o ejecución (x) a determinados archivos (si éstos no son ejecutables, el de ejecución no procede al igual que ocurre con las carpetas o directorios). Como su propio nombre indica, unos permisos de lectura nos permitirán abrir un archivo o una carpeta para "echar un vistazo" a su contenido pero no podremos realizar modificación alguna hasta que no nos otorguen permisos de escritura (que son los que nos permitirán realizar modificaciones).
Los permisos, los propietarios y los privilegios de los usuarios
Salvo que un usuario sea administrador de un sistema (y por tanto podrá manejar a su antojo cualquier archivo o carpeta), todos los usuarios están sujetos a las reglas de permisos a la hora de trabajar en su equipo o en un servidor (por ejemplo en el hosting de nuestro blog). De hecho, el esquema de permisos distingue entre 3 tipos de alcance desde el punto de vista del usuario:
Propietario del archivo Grupo al que pertenece * Resto de usuarios del sistema
Como bien podemos imaginar, el propietario del archivo (o de la carpeta) es el usuario que creó dicho archivo y, por tanto, suele tener permisos de acceso y modificación al mismo. Los grupos de usuarios podemos entenderlos como una agrupación de permisos y privilegios, por tanto, definen el alcance que pueden agrupaciones de usuarios tener dentro de un sistema (administradores, usuarios con ciertos privilegios, etc) y sirven para acotar las opciones que pueden éstos sin necesidad de tener que realizar configuraciones de manera individual.
Por consiguiente, combinando los 3 tipos de permisos (lectura, escritura y ejecución) con las 3 perspectivas de usuario (propietario, grupo y resto de usuarios, algo que suele conocerse como UGO, User, Group, Others), todos los archivos y carpetas de sistemas Unix, distribuciones GNU/Linux y equipos con Mac OS X están sujetos a un estricto sistema de control de acceso con el que garantizar la integridad y el acceso únicamente a "personal autorizado".
Ilustrándolo con un ejemplo, imaginemos que tenemos un archivo de texto creado por el usuario A (perteneciente al grupo de usuarios AA) que tiene el siguiente esquema de permisos:
Propietario: lectura y escritura Grupo: lectura * Otros usuarios: ninguno
Con un esquema así, el propietario podría realizar modificaciones, el resto de usuarios del grupo podría acceder en modo lectura y los usuarios de otros grupos no podrían ni acceder a él ni mucho menos realizar modificiaciones (salvo el usuario administrador que tiene permisos para hacer lo que quiera).
Permisos y seguridad
¿Y qué tienen que ver los permisos y la seguridad? Una buena configuración en los permisos de nuestros archivos puede evitar que alguien con no muy buenas intenciones realice modificaciones sobre nuestro sistema y, por ejemplo, acceda a más información de la debida o ponga en peligro la integridad de nuestro sistema o de una de nuestras aplicaciones. Por tanto, una buena gestión de permisos es un factor clave que contribuye a mejorar la seguridad de un sistema.
¿Y ahora qué? Tras conocer un poco el fundamento teórico de los permisos en archivos y carpetas, el siguiente paso que daremos será el de adentrarnos en la notación y simbología que normalmente se utiliza (y que podremos ver en muchos sistemas operativos) para después pasar a un enfoque práctico y analizar algunos detalles a tener en cuenta, por ejemplo, para mejorar la seguridad de nuestro servidor web.
Imagen: DeviantArt