1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Comprender CHMOD (derechos de archivo en servidor)
CHMOD ( abreviación de cambio de modo) permite cambiar los permisos de acceso de un archivo o directorio.
Derechos (leer sobre Wikipedia) disponibles para cada persona/grupo son los siguientes:
- lectura: da el derecho de listar (requiere también el derecho de ejecución) y leer en un directorio y/o leer un archivo
- Escritura: da derecho a crear, editar, renombrar, eliminar archivos y/o directorios
- ejecución: para un directorio: da el derecho de cruzarlo para leer sus subdirectorios -> Para un archivo: da el derecho de ejecutar si es un programa o un script por ejemplo.
- set uid (lea sobre Wikipedia): en un archivo con los derechos de ejecución esto tendrá el efecto de ejecutarlo con los derechos del propietario si utiliza la llamada al sistema execve o setuid
- set gid (lea sobre Wikipedia): todos los nuevos archivos creados pertenecen al grupo del directorio y en un fichero con los derechos de ejecución esto tendrá el efecto de ejecutarlo con los derechos del grupo
- sticky bit (leer sobre Wikipedia): en un directorio, los archivos del directorio podrán ser renombrados o eliminados únicamente por el propietario, incluso si los demás usuarios tienen derecho a escribir. Derecho no realmente útil en los archivos
El Administrador de archivos FTP Manager permite cambiar los permisos de los archivos (incluido el de /web).
La mayoría de los programas de FTP permiten cambiar los derechos de acceso a los archivos; la función se llama generalmente "CHMOD" y se encuentra bajo "Propiedades," "Permisos" o "Atributos" (por lo general haciendo clic derecho sobre el archivo o carpeta a modificar). Una casilla a menudo permite aplicar permisos a todos los subdirectorios y archivos en la carpeta, en modo recursivo.
Cuando haya marcado los permisos que le interesen, valide y los derechos serán modificados excepto aquellos que no tiene permiso para modificar o en lugar de que el usuario en el que se ha identificado no tiene derecho a modificar.
Ejemplo con Filezilla:
Más información
Cuando se habla de cambiar los permisos, en general se trata de hacer un "chmod 777
", "chmod 666
" o algo así. Así que tres cifras, de las cuales:
- el primero corresponde a los derechos del propietario
- el segundo corresponde a los derechos del grupo
- la tercera cifra corresponde a los derechos de los demás usuarios.
Y los derechos se dividen así:
- "4" para el derecho de lectura (read)
- "2" para el derecho de escritura (write)
- "1" para el derecho de ejecución (execute)
A continuación, basta con añadir estas cifras. P.ex si quieres todos los derechos para el propietario pero no tienes derechos para los demás, harás "chmod 700" (4 + 2 + 1 = 7). Si solo quieres los derechos de lectura y escritura para todos (4 + 2 = 6), harás un "chmod 666."
Estos valores son conocidos por cualquier buen software/client FTP, por lo que tendrá la posibilidad de poner el número directamente en su software/client FTP para que los permisos sean cambiados.
Para cambiar los permisos en archivos o directorios a PHP, también puede hacerlo con la función "chmod" como en el ejemplo siguiente:
chmod ("/un_dossier/un_fichier", 0755)
Tenga en cuenta que el valor a aplicar debe ser en octtale, por lo que el cero debe ser obligatorio. Tenga cuidado si almacena el valor en una variable, va a tener un problema de tipo de datos, que puede eludir con la función octdec()
, como en el ejemplo siguiente:
$mode = 0755;chmod("/un_dossier/un_fichier", octdec($mode))