gFTP-Los permisos Linux – Capítulo 5

aAntes de adentrarnos en la subida y bajada de archivos con los permisos linux, vamos a hacer un repaso en profundidad sobre cómo maneja los permisos el sistema GNU/Linux y de paso veremos los comandos respectivos para cambiar y/o asignar:

El comando a utilizar es “chmod” (“change mode”) para los archivos remotos y “lchmod” para los archivos locales.

Chmod es un comando UNIX que se encuentra en la mayoría de los sitemas operativos GNU/Linux y similares como BSD. Este comando no permite cambiar los permisos de acceso a un archivo, a varios o a directorios…

Cada archivo tiene nueve clases de acceso, que pueden ser permitidos o no. Se pueden aplicar diferentes permisos al dueño del fichero, al grupo al que el fichero pertenece y al resto de usuarios. Cada una de estas tres clases de usuarios (dueño, grupo, resto de usuarios) puede tener permisos de lectura, escritura y ejecución.

Permisos carpetas y archivos joomla

Cuando subimos nuestro Joomla hay ciertos directorios y archivos a los que le tenemos que dar determinados permisos, según sea: solo de lectura, de escritura, de ejecución o cualquier combinación de los tres. Un ejemplo típico es el archivo “configuration.php” el que debemos poner de escritura pública para poder cambiarlo cuando lo instalamos o modificamos y luego volver a dejarlo de solo lectura. Justamente esto nos garantiza que estarán seguros aquellos a los que queramos mantener a salvo de extraños.

A continuación veamos un poco el concepto de usuario en GNU/Linux para entender mejor.

El sistema operativo *NIX esta diseñado para ser multiusuario. Por ello *NIX permite tres niveles de acceso a los archivos, para tres categorias diferentes de usuarios:

owner (propietario): La persona que el sistema reconoce como dueño del archivo, el que lo creó.

group (grupo): es el conjunto de usuarios con permisos similares. Muy usado en entornos de trabajo, es de escasa aplicación en páginas web. Un ejemplo típico que se da en entornos de redes es el grupo “smbgroup” que corresponde a los usuarios que utilizan Samba para compartir archivos entre Windows y Linux.

other (otros): Cualquier otra persona.

Es un error asociar el concepto de usuario a una persona real. Se trata de una abstracción, que se refiere no a personas sino a categorias. Por ejemplo, si nosotros creamos un script, somos efectivamente sus autores y propietarios; pero ese script esta destinado a la red. Nosotros, y el resto de personas, accederan al archivo no a traves de nuestra maquina local sino por internet. Es frecuente en los servidores la creación de usuarios genéricos (root, www, www-user etc). En definitiva no olvides que cuando asignas permisos a un script, el owner puede ser cualquiera que visite la página, lo cual será necesario si como es normal se trata de scripts que se administran via web.

Tipos de permisos linux de acceso

Read (lectura): Permisos linux para ver el archivo o directorio, sin hacer cambios.

Write (escritura): Permisos linux de escritura: puede escribir el archivo, y por tanto, cambiarlo.

Execute (ejecución): El archivo o directorio puede ser ejecutado. Se usa para directorios con scripts, formularios, etc …

Los directorios en linux como en Windows se consideran como archivos por lo que pueden tener los mismos permisos. La diferencia es que :
• El permiso read nos deja listar los archivos de un directorio.
• El permiso write no deja añadir nuevos archivos al directorio.
• El permiso execute nos deja acceder a los archivos del directorio

¿Donde se ven los permisos linux?

Como vimos anteriormente, al ejecutar el comando dir o ls, este nos mostraba una lista de los archivos/subdirectorios contenidos en el directorio especificado.
Vamos a “descomponer” alguno para entender mejor su lectura, tomaremos el archivo de configuración “.htacces”.

El punto que precede a los archivos en linux significa que este está oculto.

-rw-r–r– pepe pepe 2663 ene 12 2009 .htaccess
|/  / /     |    |     |
|

||  | |     |    |     tamaño              nombre del archivo
||  | |     |    |_ nombre grupo
||  | |     |
||  | |     |_ nombre usuario
||  | |
||  | |_ Permisos genericos
||  |
||  |_ Los siguientes tres digitos los permisos del Group
||
||___ los siguientes tres caracteres determinan los permisos del owner:

|     r de read, lectura; w, write, escritura y x de execute, ejecución
|
|
|___ El primer carácter indica si nos encontramos ante un directorio o un
fichero: d significa directorio, – significa fichero,
l significa link (o enlace simbólico, similar a un acceso directo en Window)

El comando “chmod” o “lchmod” puede usarse tanto con letras como con números, pero lo más frecuente es el uso de números. Seguro que ya nos han dicho alguna vez “ponle permiso 777”.

Para comprender el significado de los números hay que tener en cuenta el significado de cada número de manera que representan los permisos según este esquema:

4= lectura
2= escritura
1= ejecución

6 (4+2)= lectura y escritura
5 (4+1)= lectura y ejecución
3 (2+1)= escritura y ejecución
7 (4+2+1)= lectura, escritura y ejecución

Es decir que para el caso de un archivo con el permiso 777 significa que tanto el owner, group y others tienen permisos de lectura, escritura y ejecución.
Veamos una figura:
777
¦¦¦_ Permisos de others (4+2+1)= lectura, escritura y ejecución
¦¦_ Permisos de group (4+2+1) = lectura, escritura y ejecución
¦_ Permisos de owner ((4+2+1) = lectura, escritura y ejecución

En este caso quiere decir que cualquiera que acceda a nuestra web puede leer, escribir y ejecutar el archivo. ¿Eso significa que cualquiera nos puede modificar el archivo? No, pero todo depende de la configuración del servidor web (Apache o el que sea) y del archivo .htacces ubicado en nuestro directorio remoto, que por defecto prohibide la escritura pública. Si quieren saber un poco más al respecto lean sobre configuraciones de Apache.

Veamos 2 ejemplos más de permisos:

766
¦¦¦_ Permisos de others (4+2) = lectura y escritura
¦¦_ Permisos de group (4+2) = lectura y escritura
¦_ Permisos de owner ((4+2+1) = lectura, escritura y ejecución

Unos de los más típicos en Joomla:
755
¦¦¦_ Permisos de others (4+1) = lectura y ejecución
¦¦_ Permisos de group (4+1) = lectura y ejecución
¦_ Permisos de owner ((4+2+1) = lectura, escritura y ejecución

Veamos a continuación su equivalente en letras:

0 = — = sin acceso
1 = –x = ejecución
2 = -w- = escritura
3 = -wx = escritura y ejecución
4 = r– = lectura
5 = r-x = lectura y ejecución
6 = rw- = lectura y escritura
7 = rwx = lectura, escritura y ejecución

Asi, en el ejemplo de antes:
rw-r–r–

significa que el owner tiene permisos de lectura y escritura (rw-); el group permisos linux de lectura unicamente (r–) y other, permiso de lectura (r–). Lo que sería el equivalente en números a 644.

La sintaxis para usar chmod con texto:
chmod [ugo][+-][rwx] [nombre_archivo]

Donde [u=user, g=group y o=other]; [+/- activa o desactiva los atributos siguien-tes] [r=read, w=write, x=execute]

Por ejemplo, chmod go+r index.php significa que asignamos permisos de lectura para group y others en index.php
De esta forma solo cambiamos los atributos que especificamos, pero no alteramos otros compatibles que pudieran estar asignados anteriormente (por ejemplo, no modifica la atribucion anterior a group de un permiso de ejecución).

Si queremos fijar de nuevo todos los permisos, la sintaxis sería:
chmod go=r index.php

donde asignamos a group y other permiso de lectura sobre index.php y eliminamos cualquier otro permiso para ambos.

También se pueden utilizar comodines, por ejemplo:
chmod 644 *.php

Esto le cambiaría a todos los archivos php ubicados en el directorio donde estamos posicionados dichos permisos.

Algunos componentes Joomla nos facilitan el trabajo de los permisos presentándonos un cuadro para seleccionarlos. Por ejemplo el componente “JoomlaXplorer”:

La primer columna de las r son los 4
La segunda columa de las w son los 3
La tercer columna de las x son los 1
En este ejemplo sería 777
Ampliando, tienen que ir haciendo la suma por filas:
Propietario es r+w+x=7
Grupo es r+x=5 (ya que w está desmarcado)
Público es r+x=5 (ya que w está desmarcado)

En este caso es al reves que el anterior ya que las columnas representan los tipos de usuarios y las filas los permisos linux.

Deja un comentario

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver
Privacidad