En este reportaje vamos a dar una breve introducción acerca de cómo llevar a cabo la gestión de los permisos asociados a los ficheros y directorios de nuestro sistema GNU/Linux.
Los permisos asociados a ficheros y directorios son una de las medidas de seguridad básicas de todo sistema Linux. Cada fichero o directorio de nuestro sistema tiene asociados un usuario propietario, un grupo propietarios y unos permisos. Generalmente, el usuario propietario será la persona que ha creado el fichero pero esto es alterable después de la creación.
Linux controla el acceso a ficheros y directorios a tres grupos de personas diferentes:
Propietario - owner: es el propietario del fichero o directorio
Grupo - group: comprende los usuarios que están en el mismo grupo del fichero o directorio
Otros - others: el resto de los usuarios del sistema, que no sean el usuario propietario ni pertenezcan al grupo.
Existen tres tipos de permisos básicos que un usuario puede tener con respecto a un fichero o directorio:
Lectura - Read: para ficheros, este permiso permite leer el contenido del mismo. Para directorios, el permiso permite leerlo, lo que significa poder listar el contenido el mismo.
Escritura - Write: aplicado a ficheros, este permiso permite escribir contenido en el archivo. Para directorios, el permiso permite crear y borrar ficheros dentro del directorio.
Ejecución - Execute: Aplicado a ficheros, el permiso permite ejecutar el programa almacenado en el archivo. Usado en directorios, este permiso permite acceder al contenido de los ficheros almacenados dentro del directorio.
Además de los permisos mostrados denominados básicos, existen otros, menos utilizados, denominados extendidos. Estos permisos sólo afectan a ficheros ejecutables y, en algunos sistemas, a directorios. Los permisos extendidos son los siguientes:
SUID: cuando un fichero tiene este permiso activado, se ejecuta con los privilegios del usuario que posee el fichero, no del usuario que lo ha ejecutado. Este permiso no tiene efecto en directorios.
SGID: se comporta de forma similar al permiso SUID pero la ejecución se realiza con los permisos del grupo al que pertenece el fichero. Su uso en directorios sólo tiene validez en algunos sistemas y no está muy extendido.
Sticky bit: usado principalmente para directorios. Cuando un directorio tiene activado el sticky bit, un usuario sólo puede borrar los ficheros que posee o para los que tiene acceso de escritura explÃcito. Este permiso se usa generalmente en el directorio /tmp. Este directorio posee permiso de escritura para todo el mundo pero un usuario solo puede borrar los ficheros que haya creado.
Cuando se crea un fichero o directorio, automáticamente se les asigna un propietario y un grupo. Generalmente se le asigna el usuario actual y el grupo del directorio donde se crea el fichero. Se pueden cambiar el propietario y grupo de un fichero mediante los comandos chgrp y chown.
El propietario, grupo y permisos de un fichero se pueden visualizar mediante el comando ls –l. . AsÃ, en la primera columna del listado se mostrarán los permisos, en la tercera el propietario y en la cuarta el grupo.
La representación de los permisos puede resultar confusa a primera vista. Para ver mejor que permisos son aplicables a un fichero vamos a ver el formato a continuación:
Los permisos se representan mediante una cadena de nueve bits. El primer campo no es binario e indica el tipo de entrada. El significado de cada uno de los bits es el siguiente:
1-Tipo de la entrada:
– Fichero normal
d Directorio
l Enlace simbólico
c Dispositivo de caracteres
b Dispositivo de bloques
2-r (read, lectura) para owner
3-w (write, escritura) para owner
4-x (execute, ejecución) para owner
5- r (read, lectura) para grupo
6-w (write, escritura) para grupo
7-x (execute, ejecución) para grupo
8-r (read, lectura) para otros
9-w (write, escritura) para otros
10-x (execute, ejecución) para otros
Existen dos modos diferentes de indicar al sistema los permisos de un fichero, el modo simbólico y el modo numérico. Conviene conocer los dos modos porque cada uno puede ser usado en unas circunstancias determinadas.
El formato de modo simbólico es:
[ugoa…][[+-=][rwxXstugo…]…]
Usuarios Operación Permisos
La parte de usuarios indica a que usuario va a cambiar los permisos. Consiste en una o más de las letras anteriormente citadas sin importar el orden:
u : Usuario que posee el fichero
g : Usuarios en el mismo grupo que el fichero
o : Resto de usuarios
a : Todos los usuarios, equivalente a ugo.
La parte de operación indica cómo se va a cambiar el acceso:
+ : Añadir permisos a los usuarios identificados anteriormente
- : Eliminar permisos a los usuarios identificados anteriormente
=: Asigna exactamente los permisos que se indiquen a los usuarios identificados anteriormente.
Los permisos serán r, w, x tal y como vimos antes, además de otros caracteres especiales que indicarán todos, ninguno, etc.
El modo numérico es más corto que el modo simbólico equivalente pero está más limitado ya que no tiene en cuenta los permisos que pudiera tener anteriormente el fichero. Es decir, el modo numérico equivale únicamente al modo = de simbólico.
Tenemos que conocer la numeración asociada a cada uno de los permisos:
4 – equivale a read
2 – equivale a write
1 – equivale a execute
Asà pues chmod 777 equivale a chmod u=rwx.
Con esto hemos introducido al lector los conceptos básicos para la gestión de los ficheros y directorios de su sistema GNU/Linux, esto es aplicable también a todo tipo de sistemas y servidores de tipo Unix. Como podemos observar las posibilidades con respecto a la gestión de archivos en sistemas propietarios tales como Microsoft Windows es bastante más rica dado que se nos posibilitan las funcionalidades anteriormente citadas.

Enlaces Patrocinados:
Otros Reportajes:
DeberÃa pasarme a linux?: Una pequeña reflexión del porqué de la rivalidad Windows vs. Linux »
Programación del shell bash: Aspectos básicos »










Estás en:


Estás en:
MundoInformática | Linux | Gestión de permisos en Linux: Breve introducción

