1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Entender 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 derechos FTP
Los derechos (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 derechos de ejecución, esto tendrá el efecto de ejecutarlo 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 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 el derecho de escritura. Derecho no muy útil en los archivos
El gestor de archivos FTP Manager permite cambiar los permisos de los archivos (incluido el de /web).
La mayoría de los programas/clientes FTP permiten cambiar los derechos 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 a menudo permite aplicar los permisos a todos los subdirectorios y archivos en la carpeta, en modo recursivo.
Cuando haya seleccionado los permisos que le interesan, valide y los derechos se modificarán, excepto aquellos que no tenga autorización para modificar o, más bien, que el usuario bajo el cual se ha identificado no tenga el derecho de modificar.
Ejemplo con Filezilla:
Más información
Cuando se habla de cambiar permisos, generalmente se trata de hacer un "chmod 777", "chmod 666" u otro. 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 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, simplemente suma estos números. Por ejemplo, si desea todos los derechos para el propietario pero ningún derecho para los demás, haga "chmod 700" (4 + 2 + 1 = 7). Si solo desea los derechos de lectura y escritura para todos (4 + 2 = 6), haga "chmod 666".
Estos valores son conocidos por cualquier buen software/cliente FTP, por lo que tendrá la posibilidad de ingresar directamente el número en su software/cliente FTP para que los permisos se cambien.
Para cambiar los permisos en 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, de ahí el cero inicial 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))