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 9, 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. Y una de las cosas que no mencionamos acerca de los usuarios y grupos es que cada uno de ellos posee un directorio propio (denominado su directorio personal, o home en inglés) El usuario es el dueño de este directorio, y de los archivos que va a crear subsecuentemente.

Sin embargo, esto no sería muy útil si sólo estuviera la noción de propiedad de archivos. Pero hay más: 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): para un archivo, esto permite que se lea su contenido. Para un directorio, esto permite que se muestren los archivos que contiene (es decir, los archivos en este directorio)

  2. Permiso de escritura (w por Write, Escribir): para un archivo, esto permite que se modifique su contenido. Para un directorio, esto permite que un usuario agregue y/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 (en consecuencia, normalmente sólo los archivos ejecutables deberían tener activo este permiso) Para un directorio, esto permite que un usuario lo recorra (lo que significa poder ingresar a, o pasar por, ese directorio) Note que esto está separado del acceso de lectura: bien puede ser que Usted pueda recorrer un directorio, ¡pero no leer su contenido!

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. Incluso puede hacer lo contrario, aunque a primera vista no parezca muy lógico... Como dueño del archivo, también puede cambiar el grupo propietario (solamente si Usted es miembro del grupo nuevo), e incluso privarse del archivo (es decir, cambiar su dueño) Por supuesto, si Usted mismo se priva de un archivo perderá todos sus derechos sobre el mismo...

Tomemos el ejemplo de un archivo y un directorio. Abajo se muestra el resultado de ingresar el comando ls -l desde una 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. ¡Esto significa que también puede garantizarse la propiedad! Él 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...

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

[Note]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.