1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Cambiar los derechos/permisos de un archivo
El CHMOD (abreviatura de cambio de modo) permite cambiar los permisos de acceso de un archivo o de un directorio.
Los derechos (leer en Wikipedia) disponibles para cada persona/grupo son los siguientes:
- lectura: da derecho a listar (necesita también el derecho de ejecución) y leer en un directorio y/o leer un archivo
- escritura: da derecho a crear, modificar, renombrar, eliminar archivos y/o directorios
- ejecución: para un directorio: da derecho a atravesarlo para leer sus subdirectorios-> Para un archivo: da derecho a ejecutarlo si es un programa o un script, por ejemplo.
- set uid (leer en Wikipedia): en un archivo con derecho de ejecución tendrá por efecto ejecutarlo con los derechos del propietario si utiliza la llamada sistema execve o setuid
- set gid (leer en Wikipedia): todos los nuevos archivos creados pertenecerán al grupo del directorio y en un archivo con derecho a ejecución tendrá por efecto ejecutarlo con los derechos del grupo
- sticky bit (leer en Wikipedia): en un directorio, los archivos del directorio podrán ser renombrados o eliminados solo por el propietario, incluso si los demás usuarios tienen derecho de escritura. Se trata de un derecho no muy útil en los archivos
te recomendamos que utilices nuestro gestor de archivos FTP Manager que te permite cambiar los permisos de archivos (incluido el de /web).
La mayoría de los programas FTP permiten cambiar los derechos de acceso a los archivos; la función suele llamarse "CHMOD" y se encuentra en "Propiedades", "Permisos" o "Atributos" (en general, haciendo clic con el botón derecho en el archivo o carpeta que desees modificar). Una casilla permite a menudo aplicar los permisos en todos los subdirectorios y archivos en la carpeta, en modo recursivo.
Cuando hayas marcado los permisos que te interesen, valida y los derechos se modificarán, salvo aquellos para los que no tengas autorización para modificar o, mejor dicho, aquellos para los que el usuario con el que te has identificado no tenga derecho a modificar.
Ejemplo con Filezilla
Más información
Cuando se habla de cambiar permisos, en general, se trata de realizar un "chmod 777", "chmod 666" u otro. Es decir, tres cifras, de las cuales:
- la primera corresponde a los derechos del propietario
- la segunda corresponde a los derechos del grupo
- la tercera cifra a los derechos de los demás usuarios
Y los derechos se desglosan del siguiente modo
- "4" para el derecho de lectura (read)
- "2" para el derecho de escritura (write)
- "1" para el derecho de ejecución (execute)
Después, basta con añadir estas cifras. Por ejemplo, si quieres todos los derechos para el propietario, pero no quieres ningún derecho para los demás, harás "chmod 700" (4 + 2 + 1 = 7). Si solo quieres los derechos de lectura y escritura para todo el mundo (4 + 2 = 6), harás un "chmod 666
. Estos valores son conocidos por cualquier buen programa FTP, así podrás poner directamente el número en tu cliente FTP para que los permisos cambien.
Para cambiar los permisos en archivos o directorios en PHP, también puedes hacerlo con la función "chmod" como en el ejemplo siguiente:
chmod ("/un_dossier/un_fichier", 0755)Ten en cuenta que el valor a aplicar debe ser en octales, por lo que el cero es obligatorio. Atención: si guardas el valor en una variable, tendrás un problema de tipo de datos, que puedes evitar con la función octdec(), como en el ejemplo siguiente:
$mode = 0755;chmod("/un_dossier/un_fichier", octdec($mode))