chmod PHP no funciona

Iniciado por KateLibby, 5 Septiembre 2014, 10:01 AM

0 Miembros y 1 Visitante están viendo este tema.

KateLibby

Hola, estoy intentando cambiar los permisos de un archivo desde un script, y no me funciona. Lo raro es que en otros sitios web, he aplicado el mismo script y sí ha funcionado.

¿Alguien sabría decirme a qué puede ser debido?


Código (php) [Seleccionar]
chmod("login.php",  0644);
echo "Ya puede acceder normalmente";


Gracias!

#!drvy

Asegúrate de que el script tiene permisos para ejecutar el chmod.

Saludos

JorgeEMX

Cita de: #!drvy en  5 Septiembre 2014, 17:59 PM
Asegúrate de que el script tiene permisos para ejecutar el chmod.

Saludos

Más bien, yo diría, que se asegure que el archivo al cuál está ejecutando la acción (chmod) tenga los permisos necesarios. Generalmente, login.php debería tener el mismo propietario que ejecuta el script PHP (si es desde el navegador, el usuario de Apache).

KateLibby

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.

MinusFour

Cita de: KateLibby en  8 Septiembre 2014, 09:45 AM
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:

Código (bash) [Seleccionar]

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):

Código (bash) [Seleccionar]

sudo chown usuario login.php

KateLibby

Cita de: MinusFour en  8 Septiembre 2014, 14:50 PM
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:

Código (bash) [Seleccionar]

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):

Código (bash) [Seleccionar]

sudo chown usuario login.php



¿Cómo puedo aplicar estos comandos? Es que sólo tengo acceso a los archivos mediante un cliente FTP. Allí tengo la opción de abrir una Consola, pero ya el comando PS me dice que no lo entiende.

MinusFour

No estoy seguro que se pueda establecer el dueño del archivo desde FTP, lo normal es usar SSH. Si tienes un panel de control web puede ser que te den la opción de cambiar el dueño del archivo. Claro que necesitarías averiguar el usuario del servidor HTTP.  El usuario de Apache2 en sistemas basados en debian por lo general es www-data.