2. Nociones básicas sobre los archivos

Los archivos son otro tema donde GNU/Linux difiere bastante de Windows® y muchos otros sistemas operativos. Aquí cubriremos las diferencias más obvias. Para más información, por favor consulte Capítulo 4, El sistema de archivos de Linux.

Las diferencias mayores son consecuencia directa del hecho que Linux es un sistema multiusuario: cada archivo es de la exclusiva propiedad de un usuario y un grupo. Una de las cosas que no mencionamos acerca de los usuarios es que cada uno posee un directorio propio (denominado su directorio personal, o home en inglés). El usuario es el dueño de este directorio y de todos los archivos creados en dicho directorio. Note que estos también tienen un grupo asociado y que dicho grupo es el grupo primario al que pertenece el usuario. Como se mencionó en Sección 1, “Usuarios y grupos”, un usuario puede ser miembro de más de un grupo a la vez.

Sin embargo, esto no sería muy útil si esa fuera la única noción de propiedad de archivos. Como dueño del archivo, un usuario puede configurar permisos sobre sus archivos. Estos permisos distinguen tres categorías de usuarios: el dueño del archivo, todos los usuarios que son miembros del grupo asociado al archivo (denominado también grupo dueño) pero no son el usuario dueño, y los otros, que son todos los usuarios que no son ni el dueño ni miembros del grupo dueño.

Hay tres permisos diferentes:

  1. Permiso de Lectura (r por Read, Leer): permite que un usuario lea los contenidos de un archivo. Para un directorio, el usuario puede listar el contenido del mismo (es decir, los archivos en este directorio).

  2. Permiso de Escritura (w por Write, Escribir): permite la modificación del contenido de un archivo. Para un directorio, permite que un usuario agregue o quite archivos de este directorio, incluso si no es el dueño de esos archivos.

  3. Permiso de Ejecución (x por eXecute, Ejecutar): permite ejecutar un archivo (normalmente sólo los archivos ejecutables tienen activo este permiso). Para un directorio, permite que un usuario lo recorra, lo que significa poder ingresar a, o pasar por, ese directorio. Note que esto es diferente del acceso de lectura: bien puede ser que Usted pueda recorrer un directorio, ¡pero no leer el contenido del mismo!

Todas las combinaciones de estos permisos son posibles. Por ejemplo, puede autorizar la lectura de un archivo sólo a Usted mismo y prohibirla a todos los demás usuarios. Como dueño del archivo, también puede cambiar el grupo propietario (solamente si Usted es miembro del grupo nuevo).

Tomemos el ejemplo de un archivo y un directorio. Abajo se muestra el resultado de ingresar el comando ls -l desde la línea de comandos:

$ ls -l
total 1
-rw-r-----   1 reina    users           0 Jul  8 14:11 un_archivo
drwxr-xr--   2 peter    users        1024 Jul  8 14:11 un_directorio/
$

Los diferentes campos de salida del comando ls -l son los siguientes (de izquierda a derecha):

Ahora observemos en detalle los permisos asociados con cada uno de estos archivos: antes que nada, debemos quitar el caracter que representa al tipo, y para el archivo un_archivo obtenemos los derechos siguientes: rw-r-----. La interpretación de los mismos es la siguiente:

Para el directorio un_directorio, los derechos son rwxr-xr--, entonces:

Hay una excepción a estas reglas: root. El usuario root puede cambiar los atributos (permisos, dueño, y grupo dueño) de todos los archivos, incluso si no es el propietario de los mismos, y por lo tanto ¡puede garantizarse la propiedad del archivo! root puede leer archivos sobre los que no tiene permisos, recorrer directorios a los que normalmente no tendría acceso, y así sucesivamente. Y si le falta un permiso, sólo tiene que añadírselo. root tiene control total sobre el sistema, lo cual implica cierto nivel de confianza en la persona que tenga la contraseña de root.

Para finalizar, vale la pena mencionar otra diferencia entre los nombres de los archivos en el mundo de UNIX® y en el mundo de Windows®. UNIX® permite mayor flexibilidad y tiene menos limitaciones:

[Nota]Nota

No obstante, vale la pena notar que muchas aplicaciones gráficas (administradores de archivos, aplicaciones de oficina, etc.) en realidad utilizan las extensiones de archivo para reconocer a los archivos. Por lo tanto, es buena idea usar extensiones en los nombres de archivos para dichas aplicaciones que las soportan.



[1] De manera predeterminada, los archivos ocultos no se mostrarán en un administrador de archivos, a menos que Usted lo ordene. En una terminal, debe teclear el comando ls -a para ver todos los archivos ocultos además del resto de los archivos. Esencialmente, los mismos contienen información de configuración. Eche un vistazo a .mozilla o .openoffice en su directorio personal, para ver un ejemplo.