Hola, gracias por vuestras respuestas.
Le he dado permisos 777 al archivo que ejecuta el chmod, pero me sigue pasando lo mismo.
Una cosa que me he dado cuenta es que si miro los permisos del archivo login.php desde el programa cliente FTP, cuando actualizo el listado de archivos me salen durante unos instantes estos:
login.php rw-r--r--
pero después, sin hacer nada, en seguida se vuelve a quedar sin permisos.
¿Alguna idea?
Gracias.
Solo el dueño del archivo (y root) pueden modificar los permisos del archivo. Lo que necesitas hacer es encontrar el usuario con el que esta corriendo el apache y cambiar el dueño del archivo al que le estas haciendo chmod.
Si estás en Linux:
ps aux | grep apache2 | grep -v root | grep -m1 -v $(whoami) | awk '{ print $1 }'
Deberia regresarte el usuario de apache2, a menos que tu usuario sea root o el mismo que estas usando (no creo).
Después puedes cambiar el propietario del archivo (desde la misma carpeta del archivo):
sudo chown usuario login.php