4.7.1.- Significado de los bits de permiso

Vemos una línea de listado mostrada con el comando ls con la opción -l:

permisos_1permisos_2Donde:

Fichero de datos normales.- Puede ser un texto, un programa ejecutable, gráficos, datos comprimidos o, simplemente, cualquier otro tipo de datos.

Directorio.- Son ficheros como otros cualquiera, pero que contienen nombres de fichero y punteros a los nodos del disco.

Enlace simbólico.- Es el fichero que contiene el nombre de otro fichero o directorio. Cuando Linux accede al enlace simbólico, este intenta leer el fichero enlazado.

Pipe.- Permite comunicarse entre sí a dos programas Linux en ejecución. Uno abre el fichero para lectura y el otro lo abre para escritura, así permite la transferencia de datos entre los programas.

Socket.- Similar a un pipe con nombre, pero permitiendo enlaces de red bidireccionales.

Dispositivo de bloque.- Es un fichero que se corresponde con un dispositivo de hardware hacia y desde el que se transfieren los datos en unidades de un byte. Los dispositivos de disco (discos duros, disquettes, CD-ROM, etc.) son dispositivos de bloques comunes.

Dispositivo de caracteres.- Es un fichero que se corresponde con un dispositivo de hardware hacia y desde el que se transfieren los datos en unidades de un byte. Por mencionar algunos ejemplos se incluyen dispositivos con puertos en paralelo y RS-232 en serie.

permisos_3

permisos_4

permisos_5

permisos_6

En todos estos casos, la cadena de permiso nos determina los tres tipos de acceso:

grupo_1

El primer grupo que es el acceso del propietario, tiene acceso de lectura, escritura, y ejecución.

grupo_2

El acceso para el fichero del grupo, solo tiene permiso de lectura.

grupo_3

El acceso a los permisos globales es de sólo lectura.

Los permisos de lectura y escrituras saltan a la vista en los ficheros normales. Si incluimos el permiso de ejecución significa que podemos ejecutarlo como un programa. La ausencia de los permisos se denota mediante un guión (-) en la cadena de permisos.

Veamos algunos ejemplos gráficos de la cadena de permisos:

Tabla de permisos más probables
Cadena de permisos Código octal Significado
rwxrwxrwx 777 Permisos de lectura, escritura y ejecución para todos los usuarios.
rwxr-xr-x 755 Permisos de lectura y escritura para todos los usuarios. El propietario del fichero también tiene permiso de escritura.
rwxr-x--- 750 Permisos de lectura y escritura para el propietario y el grupo. El propietario del fichero también posee permiso de escritura. Los usuarios que no son propietarios del fichero o miembros del grupo no tienen acceso a éste.
rwx------ 700 Permiso de lectura, escritura y ejecución sólo para el propietario del fichero; los demás no tendrán acceso.
rw-rw-rw- 666 Permiso de lectura y escritura para todos los usuarios.
rw-rw-r-- 664 Permiso de lectura y escritura para el usuario y el grupo.Para el resto sólo permiso de lectura.
rw-rw---- 660 Permiso de escritura y lectura para el propietario y el grupo. No hay permisos globales.
rw-r--r-- 644 Permiso de lectura y escritura para el propietario. Permiso de solo lectura para el resto.
rw-r----- 640 Permisos de lectura y escritura para el propietario y se sólo lectura para el grupo. No hay permisos para los demás.
rw------- 600 Permisos de lectura y escritura para el propietario. Nadie más tiene permiso.
r-------- 400 Permiso de lectura para el propietario. Nadie más tiene permiso.

Los permisos de ejecución tiene sentido para los ficheros normales, pero no para los demás tipos de fichero, tales como los ficheros de dispositivo. Sin embargo, los directorios utilizan el bit de ejecución de otra manera. Al definir el bit de ejecución de directorio significa que se puede buscar en el contenido del directorio. Es una característica muy interesante en el que está definido siempre el bit de ejecución junto al de lectura.

Los directorios pueden resultar un poco confusos en lo referente al permiso de escritura. Recuerde que los directorios son ficheros  que son interpretados de una manera especial. Si un usuario puede escribir en un directorio, dicho usuario podrá  crear, borrar o renombrar los ficheros del directorio, incluso no siendo el propietario de dichos ficheros y no tiene permiso para escribir en éstos. Podemos usar el sticky bit (que comentaremos más adelante) para alterar este comportamiento.

Son poco usuales los enlaces simbólicos con respecto a los permisos. Este tipo de fichero siempre tiene permisos 777 (rwxrwxrwx), que conceden acceso completo al fichero a todos los usuarios. Sin embargo, este acceso se aplica sólo al propio fichero del enlace, pero no al fichero enlazado. O sea, que todos los usuarios pueden leer el contenido del enlace para saber el nombre del fichero al que apunta, pero son los ficheros enlazados los que determinan el acceso a éste. El cambio de los permisos del enlace simbólico afectará al fichero enlazado.

Muchas de estas reglas no se aplican a root. El superusuario puede leer o escribir en cualquier fichero del ordenador, incluso en ficheros que no conceden acceso a nadie (los que tienen permisos 000). El superusuario necesita aún que se defina un bit de ejecución para poder ejecutar un fichero de programa, pero tiene el poder para cambiar los permisos de cualquier fichero, por lo que esta limitación no es importante. Claro está, root no podrá acceder a algunos ficheros del disco duro (sobre todo si no está instalado el disco duro en el ordenador).