Kenbak-1_01_full

Ayer dedicamos unos minutos a comentar uno de los aspectos que suele generar confusión, y algún que otro dolor de cabeza, entre usuarios que se están iniciando en la administración de sistemas basados en Unix, Linux o Mac OS X: los permisos de carpetas y archivos. Tras conocer qué son los permisos, qué tipos de permisos hay y para qué sirven, hoy vamos a continuar con este tema desde un punto de vista algo más práctico puesto que nos centraremos en la notación que habitualmente se utiliza para expresar los permisos que tienen carpetas y archivos: la notación simbólica y la notación octal.

Notación simbólica

Como resumen de lo que comentamos ayer, un usuario podía tener permisos de lectura, escritura o ejecución sobre un archivo determinado (en el caso de una carpeta solamente proceden los dos primeros y, en el caso de la lectura, implica que podemos navegar por dicha carpeta). Además, los permisos tenían una perspectiva desde el usuario y se distinguían permisos al propietario del archivo, al grupo al que pertenece y permisos para el resto de usuarios del sistema (UGO, User, Group, Others). Dicho de otra forma, un archivo presentará 3 grupos de permisos, es decir, un grupo de permisos (lectura, escritura y ejecución) para el propietario, el grupo y el resto de usuarios del sistema.

Lógicamente, esta información debe ser visible por el administrador y, sobre todo, fácilmente entendible. Con esta idea, es bastante habitual utilizar una notación simbólica con la que representar, mediante la combinación de 10 caracteres, los permisos que tiene un archivo o un directorio.

Dentro de estos 10 caracteres, el primero de ellos representa al tipo de "objeto" que estamos manejando, es decir, un archivo, un directorio, un enlace, etc. Los caracteres más habituales son los siguientes:

Los archivos regulares se representan mediante un guión (-) Los directorios se representan mediante la letra d Los archivos especiales de bloques se representan mediante la letra b Los archivos especiales de caracteres se representan mediante la letra c * Los enlaces simbólicos se representan mediante la letra l

Tras este primer carácter se añaden otros nueve que representan la terna de permisos para cada una de las tres perspectivas de usuario que existen, es decir, 3 caracteres para representar los permisos del propietario del archivo, 3 caracteres para representar los permisos del grupo y otros 3 para representar los permisos del resto de usuarios del sistema. La terna sigue el orden lectura-escritura-ejecución y se representa mediante los caracteres 'r', 'w' y 'x' apareciendo el carácter cuando se poseen dichos permisos y apareciendo un guión ('-') cuando no se posean dichos permisos.

Permisos notacion simbolica

Es decir, si al listar el contenido de una carpeta desde la consola obtenemos algo como drw-r----- querrá decir que estamos delante de un directorio sobre el cual el propietario tiene permisos de lectura y escritura, el grupo de usuarios solamente de lectura (podrá acceder a éste pero no escribir) y el resto de usuarios no podrá hacer nada. Y en -rwxr-x--x estaremos delante de un archivo regular en el cual el propietario tiene permisos de lectura, escritura y ejecución y tanto el grupo de usuarios al que está asignado como el resto de usuarios del sistema también tienen permisos de ejecución.

Notación octal

Una vez entendidas las reglas que rigen el uso de la notación simbólica llega el momento de entrar en la parte que nos pueda resultar, a primera vista, algo más complicada: la notación octal.

¿Qué es la notación octal? Es una representación de los permisos de los archivos mediante dígitos en vez e utilizar cadenas de caracteres. Concretamente, cada uno de los 8 últimos caracteres de la notación simbólica (los que definen los permisos) se sustituye por un bit a 1 si el permiso se ha otorgado y por un 0 en caso contrario, es decir 111100100 sería equivalente a rwxr--r--, y la combinación de unos y ceros la pasamos a dígitos en base octal (tomando 3 bits):

rwxr--r-- = 111100100 = 744

Esta notación numérica es bastante común en uso y, por ejemplo, es algo que podemos ver en la administración de archivos que ofrecen muchos proveedores de hosting o, si manejamos una consola, cuando cambiamos los permisos de un archivo en Linux usando el comando chmod.

Si no dominamos muy bien la conversión a octal, podemos memorizar la siguiente regla:

El bit de lectura suma 4 al total El bit de escritura suma 2 al total El bit de ejecución suma 1 al total

Sabiendo cómo funciona esta notación, a partir de ahora debería resultarnos más sencillo entender qué significan permisos tan usuales como el 775, el 644, el 777 o el 600:

775 = 111111101 = rwxrwxr-x, es decir, propietario y grupo tienen todos los permisos y el resto de usuarios solamente lectura y ejecución. * 644 = 110100100 = rw-r--r--, es decir, el propietario posee permisos de lectura y escritura y el resto, tanto del mismo grupo como los demás, únicamente en lectura. * 777 = 111111111 = rwxrwxrwx sería un esquema de permisos totales para todo el mundo. * 600 = 110000000 = rw------- sería un esquema en el que únicamente el propietario del archivo tiene permisos de lectura y escritura.

¿Y ahora qué hacemos?

Para cerrar el círculo dedicaremos una próxima entrega a algunos consejos enfocados a mejorar la seguridad de nuestro servidor web aplicando los permisos adecuados a los archivos y también hablaremos de algunos detalles adicionales.

Imágenes: The Void Ghost y

Más guías y consejos

Recibe cada mañana nuestra newsletter. Una guía para entender lo que importa en relación con la tecnología, la ciencia y la cultura digital.

Procesando...
¡Listo! Ya estás suscrito