1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Comprender CHMOD (permisos de archivos en el servidor)
Esta guía detalla CHMOD (abreviatura de change mode) que permite cambiar los permisos de acceso de un archivo o un directorio.
Modificar los permisos FTP
Los permisos (consulte esta otra guía de Wikipedia) disponibles para cada persona/grupo son los siguientes:
- lectura: otorga el derecho de listar (también se necesita el derecho de ejecución) y leer en un directorio y/o leer un archivo
- escritura: otorga el derecho de crear, modificar, renombrar, eliminar archivos y/o directorios
- ejecución: para un directorio: otorga el derecho de atravesarlo para leer sus subdirectorios -> Para un archivo: otorga el derecho de ejecutarlo si es un programa o un script, por ejemplo.
- set uid (?): en un archivo con los derechos de ejecución, esto hará que se ejecute con los derechos del propietario si utiliza la llamada del sistema execve o setuid
- set gid (?): todos los nuevos archivos creados pertenecerán al grupo del directorio y en un archivo con los derechos de ejecución esto tendrá el efecto de ejecutarlo con los derechos del grupo
- sticky bit (?): en un directorio, los archivos del directorio solo podrán ser renombrados o eliminados por el propietario, incluso si otros usuarios tienen permiso de escritura. Derecho no muy útil en los archivos
El gestor de archivos FTP Manager permite cambiar los permisos de los archivos (incluyendo el de /web
).
La mayoría de los programas/clientes FTP permiten cambiar los permisos de acceso a los archivos; la función generalmente se llama "CHMOD" y se encuentra en "Propiedades", "Permisos" o "Atributos" (generalmente haciendo clic derecho en el archivo o carpeta a modificar). Una casilla permite a menudo aplicar los permisos a todos los subdirectorios y archivos en la carpeta, de manera recursiva.
Cuando haya seleccionado los permisos que le interesan, valide y los derechos se modificarán, excepto aquellos que no tiene autorización para modificar o más bien que el usuario bajo el cual está identificado no tiene el derecho de modificar.
Ejemplo con Filezilla:
Saber más
Cuando se habla de cambiar permisos, generalmente se trata de hacer un "chmod 777
", "chmod 666
" o similar. Por lo tanto, tres dígitos de los cuales:
- el primero corresponde a los derechos del propietario
- el segundo corresponde a los derechos del grupo
- el tercer dígito corresponde a los derechos de los otros usuarios.
Y los derechos se desglosan de la siguiente manera:
- 4" para el derecho de lectura (read)
- 2" para el derecho de escritura (write)
- 1" para el derecho de ejecución (execute)
Luego, basta con sumar estos números. Por ejemplo, si quieres todos los derechos para el propietario pero ningún derecho para los demás, harás "chmod 700" (4 + 2 + 1 = 7). Si quieres solo los derechos de lectura y escritura para todos (4 + 2 = 6), harás un "chmod 666".
Estos valores son conocidos por cualquier buen software/cliente FTP, por lo que tendrás la posibilidad de poner directamente el número en tu software/cliente FTP para que los permisos se cambien.
Para cambiar los permisos de archivos o directorios en PHP, también puede hacerlo con la función “chmod”, como en el siguiente ejemplo:
chmod ("/a_folder/a_file", 0755)
Tenga en cuenta que el valor a aplicar debe ser en octal, por lo que el cero al principio es obligatorio. Tenga cuidado si almacena el valor en una variable, tendrá un problema de tipo de datos, que puede evitar con la función octdec()
, como en el siguiente ejemplo:
$mode = 0755;chmod("a_folder/a_file", octdec($mode))