Un sistema de ficheros, llamado comnmente File system, determina la organizacin de los datos en un
soporte de almacenamiento, y por lo tanto como el sistema operativo gestiona y organiza los ficheros.
En este articulo pretendemos hablar sobre la gestin de ficheros en los sistemas GNU/Linux, tipos de
fichero, la nomenclatura de los ficheros, rutas, permisos de acceso, etc. Conceptos bsicos que todo el
mundo debera conocer, no solamente la gente que pretende profundizar. Ademas vamos a ofrecer una
lista de comandos bsicos que nos van a ayudar a movernos por la jerarqua de los ficheros y
gestionarla.
Linux es, como todo Unix, un sistema operativo completamente orientado a ficheros. Esto quiere decir
que todo ( o casi todo ) se representa con un fichero, tanto los datos ( ficheros de datos de cualquier
tipo, como una cancin o un programa ) como los perifricos ( ratones, teclado, tarjeta de sonido, etc) o
incluso los medios de comunicacin ( sockets, tuberas, etc.). Debido a este motivo se podra decir que
el sistema de ficheros es el corazn de los sistema Unix, pero evidentemente no todos los ficheros
tienen las mismas propiedades.
Las carpetas o directorios permiten crear una jerarqua en el disco. Dentro de estas carpetas podemos
contener ficheros ordinarios, especiales y otros directorios de manera recursiva.
Un directorio no es mas que un fichero que contiene una lista de los ficheros presentes en este
directorio, ni mas ni menos.
Los ficheros ordinarios
Tambin llamados ficheros regulares ( ordinary files ), son los ficheros de toda la vida que contienen
datos. Pueden contener cualquier tipo de dato :
Texto, Audio, Imagen, Scripts, Libreras de programacin, etc.
Por defecto, nada permite diferenciar unos de otros, Linux no conoce la nocin de extensin de
fichero como componente interno de la estructura del sistema de ficheros, por lo que la extensin no
tiene importancia y se considera simplemente parte del nombre.
Los ficheros especiales
Existen varios tipos de ficheros especiales pero principalmente sirven de interfaz para los diversos
perifricos. Cuando se accede en modo lectura o escritura a estos ficheros se redirigen hacia el
perifrico ( pasando por el driver asociado si existe ) con la misin de controlarlos.
Ejem : Los drivers de perifricos estn en la carpeta /dev, estos drivers son ficheros especiales.
Las rutas
Las rutas permiten definir una ubicacin en el sistema de ficheros. Es la lista de directorios y subdirectorios utilizados para acceder a un sitio determinado de la estructura hasta la posicin deseada
( directorio, fichero ).
El nombre de la ruta o path de un fichero es la concatenacin, desde la raz, de todos los directorios que
se deben cruzar para acceder a el, que estn separados cada uno por el carcter /.
Ejem : /home/usuario1/Documentos/Cuentas.odt
A esto se le llama ruta absoluta ( ruta desde el directorio root ).
Pero tambin existen las rutas relativas, estas se basan en tu posicin actual en el sistema de ficheros.
Puedes acceder a la posicin que deseas sin tener que marcar la ruta completa precisando la ruta mas
corta en relacin a tu posicin actual dentro de la estructura.
Para las rutas relativas podemos usar tanto el . ( que indica el directorio actual en el que estamos )
como .. ( que indica el directorio superior ).
Ejem : ./Documentos/Msica ( Es una ruta relativa al directorio Msica dentro del Directorio
Documentos que se encuentra en nuestra posicin actual)
La virguilla
A la hora de crear un nuevo usuario, el sistema le asigna un UID ( User Identification ) nico. Todos
los usuarios estn definidos en el fichero passwd de la carpeta /etc. De la misma manera, cada usuario
es integrado en, al menos, un grupo. Todos los grupos tienen un identificador nico, el GID ( Group
Identification ) y estn definidos en el archivo group de la carpeta /etc.
El comando id nos muestra esta informacin por pantalla, tanto los UID como los GID
El comando id
Se asignan un UID y un GID a cada fichero ( a su inodo, del que hablaremos en otro articulo ) que
define su propietario y su grupo con privilegios. El usuario asigna permisos al propietario, al grupo con
privilegios y al resto de los usuario.
El sistema sigue el siguiente proceso para comprobar que un usuario tiene privilegios sobre el fichero al
que intenta acceder.
1. Compara el UID del usuario con el del fichero. Si es el mismo el usuario es propietario
2. Si los UID son diferentes, el sistema comprueba si el GID del usuario es el mismo al del
fichero, si es el caso, el usuario pertenece al grupo con privilegios del fichero.
3. Si no se dan ninguno de estos dos casos el usuario ni es el propietario ni pertenece a un grupo
con derechos.
Tenemos diferentes tipos de permisos, no es o el todo o nada, de forma que un usuario puede que tenga
permisos para leer un archivo pero no pueda modificarlo. La siguiente tabla muestra los diferentes
permisos junto a su significado.
Tratando lo bsico
Se puede hablar sobre muchos mas aspectos dentro del tema de los permisos, pero en esta ocasin nos
vamos a conformar con lo mas bsico, en futuros artculos profundizaremos mas en este aspecto.
La jerarqua de ficheros
Linux utiliza un sistema de ficheros jerrquico, teniendo en cuenta esto es bastante recomendable
conocer los diferentes directorios que se encuentran en nuestro sistema. Los siguientes directorios se
encuentran en la mayora de las distribuciones Linux, pero pueden existir pequeas diferencias.