Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/09/2009, 06:50
Danilo1978
 
Fecha de Ingreso: septiembre-2009
Mensajes: 7
Antigüedad: 15 años, 3 meses
Puntos: 0
Cambiar permisos de archivos subidos en servidor Windows

Hola a todo el mundo.

Estoy trabajando en un Windows Server 2003, utilizando PHP integrado a IIS. Estoy usando la aplicación jqUploader. Es un modulito para subir archivos. Combina PHP, Flash y JQuery (librería de Javascript con Ajax).

La subida de archivos anda bien, el problema es que el archivo subido quiero procesarlo con un .exe (el ffmpeg) y para la ejecución de este .exe se hace a través del usuario Network Service. Sin embargo, por más que le doy permisos "full control" a este usuario en la carpeta donde se suben los archivos, cada archivo que se sube solamente tiene habilitado los permisos "especiales", que los hereda de otro lado.

Entonces, el ffmpeg.exe, ejecutado por el usuario Network Service, no tiene permisos para leer el archivo subido, y por lo tanto me da un error de que no lo encuentra.

Mi pregunta es cómo hacer en PHP para cambiar los permisos de un archivo ni bien ha sido subido. O sea, a cada nuevo archivo subido, necesito que pueda ser leído por el Network Service.

He intentado ejecutando la aplicación "cacls.exe" que viene con Windows, pero como todo .exe es ejecutado desde el Network Service, este usuario no puede darse permisos a sí mismo.

Cuando le asigno manualmente los permisos de lectura para el usuario Network Service desde el Windows Explorer del servidor (o sea, desde el usuario Administrator), el ffmpeg.exe funciona bien.

Necesito que me ayuden a solucionar este problema y sólo se me ocurren 3 maneras:

1- Una configuración de IIS que no estoy teniendo en cuenta. En ese caso, respondan en el tópico /f59/php-con-iis-problema-permisos-para-network-service-736097/).
2- Alguna otra manera de cambiar los permisos de un archivo subido.
3- Encontrar una manera de ejecutar un .exe desde PHP desde otro usuario que no sea el Network Service.

Saludos y gracias de antemano.
Danilo