Estoy creando un nuevo archivo con fopen.

$filename = 'user_data/10.xml';
$openhandle = fopen($filename, 'w+');

Entonces puedo comprobar si el archivo ha sido creado usando: file_exists() función.

El problema es: El archivo es creado con algunos propietarios, probablemente el nombre de la carpeta, pero no a mí. También los permisos del archivo es sólo readable by the owner.
Y puesto que yo no soy el dueño, yo no puede leer el archivo, o cambiar los permisos.

Pero Si intento cambiar el uso de:

chown($filename, 'myusername');
chmod($filename, 777);

He intentado cambiar el propietario del archivo y los permisos de uso de la Terminal usando sudo. Que funcionaban correctamente.
Así que he intentado utilizar las funciones de encima con shell_exec() por lo que se ejecuta en la raíz.

Pero no tuvo suerte.

Aunque, yo no tengo mucha experiencia con los permisos para el archivo de los números, el comando chown es también no funciona.

Entonces, ¿cómo puedo cambiar el propietario y los permisos de los archivos así que yo soy el dueño y sus permisos de lectura y escritura por mis otros scripts PHP?

Cuando se carga el archivo (antes de cualquier chmod), ¿cuáles son los permisos en el archivo, ¿cuáles son los permisos en user_data carpeta, y que es el propietario asignado?
Me cree un nuevo archivo vacío y, a continuación, escribir usando fwrite(). Los permisos del archivo son: el Propietario y Grupo: www-data Propietario: leer en Grupo: ejecutar Otros: ejecutar En el user_data carpeta, yo soy el propietario y todas las tres personas son Leer, Escribir, Ejecutar…
Como TimWickstrong dice, se debe agregar un 0 a la izquierda con el comando chmod, pero también ocurre que puede que no tenga permiso chmod. Intente $permisos » = chmod($nombre_archivo,0777); if (!$permisos») {echo «no se Pudo cambiar los permisos de archivo»;}… además, si el archivo permisos 777 no es necesario chown.

OriginalEl autor Arjun Bajaj | 2011-12-28

1 Comentario

  1. 18

    Usted debe ser capaz de chmod utilizando sólo la línea siguiente:

    chmod($filename, 0777);

    Nota el 0 antes de que el 777.

    También no cambiar la propiedad antes de que éste haya sido chmod ed

    Más información se puede encontrar aquí: php.net/manual/en/function.chmod.php
    ok, esto funcionó perfectamente… muchas gracias… 😀
    No hay problema! Me alegra poder ayudar!

    OriginalEl autor TimWickstrom.com

Dejar respuesta

Please enter your comment!
Please enter your name here