Foros del Web » Programando para Internet » PHP »

Asignar permisos a las carpetas

Estas en el tema de Asignar permisos a las carpetas en el foro de PHP en Foros del Web. Buenas, tenemos una aplicación en la empresa, escrita en php, en que unas de las opciones, crea un directorio en el servidor (windows server 2016) ...
  #1 (permalink)  
Antiguo 23/12/2018, 10:52
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 546
Antigüedad: 17 años, 2 meses
Puntos: 4
Asignar permisos a las carpetas

Buenas, tenemos una aplicación en la empresa, escrita en php, en que unas de las opciones, crea un directorio en el servidor (windows server 2016) y una serie de subdirectorios. Hasta ahí bien, ningún problema.

Ahora me gustaría que todas los directorios fueran de lectura para todo el mundo, a excepción de:
- el directorio INFO COMERCIAL, que me gustaría que el grupo DocuComercial pudiera escribir, borrar, ...
- el directorio DOC OT, el grupo DocuOT pudiera escribir y el resto no
- ....

Es posible hacerlo? Yo lo he intentado así, pero no funciona. Sólo aparece el propietario con todos los permisos.

Gracias

Código PHP:
Ver original
  1. <?php
  2.     $sc = "prueba";
  3.     $cliente = "carpeta";
  4.     if(!file_exists("../MAQUINES/".$sc."-".$cliente."/")){
  5.         mkdir("../MAQUINES/".$sc."-".$cliente."/",0777, true);
  6.         chmod("../MAQUINES/".$sc."-".$cliente."-".$cliente."/",0777);
  7.  
  8.         mkdir("../MAQUINES/".$sc."-".$cliente."/INFO COMERCIAL/",0774, true);
  9.         chgrp("../MAQUINES/".$sc."-".$cliente."/INFO COMERCIAL/", "DocuComercial");
  10.         chmod("../MAQUINES/".$sc."-".$cliente."/INFO COMERCIAL/",0774);
  11.  
  12.         mkdir("../MAQUINES/".$sc."-".$cliente."/DOC OT/",0774, true);
  13.         chgrp("../MAQUINES/".$sc."-".$cliente."/DOC OT/", "DocuOT");
  14.         chmod("../MAQUINES/".$sc."-".$cliente."/DOC OT/",0774);
  15.  
  16.         mkdir("../MAQUINES/".$sc."-".$cliente."/DOC ELEC/",0774, true);
  17.         chgrp("../MAQUINES/".$sc."-".$cliente."/DOC ELEC/", "DocuElectric");
  18.         chmod("../MAQUINES/".$sc."-".$cliente."/DOC ELEC/",0774);
  19.  
  20.         mkdir("../MAQUINES/".$sc."-".$cliente."/COMPRES/",0774, true);
  21.         chgrp("../MAQUINES/".$sc."-".$cliente."/COMPRES/", "DocuCompres");
  22.         chmod("../MAQUINES/".$sc."-".$cliente."/COMPRES/",0774);
  23.  
  24.         mkdir("../MAQUINES/".$sc."-".$cliente."/QUALITAT/",0774, true);
  25.         chgrp("../MAQUINES/".$sc."-".$cliente."/QUALITAT/", "DocuQualitat");
  26.         chmod("../MAQUINES/".$sc."-".$cliente."/QUALITAT/",0774);          
  27.     }
  28. ?>
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #2 (permalink)  
Antiguo 23/12/2018, 21:00
 
Fecha de Ingreso: abril-2006
Mensajes: 209
Antigüedad: 12 años, 10 meses
Puntos: 27
Respuesta: Asignar permisos a las carpetas

Cita:
Iniciado por mblascog Ver Mensaje
Buenas, tenemos una aplicación en la empresa, escrita en php, en que unas de las opciones, crea un directorio en el servidor (windows server 2016) y una serie de subdirectorios. Hasta ahí bien, ningún problema.

Ahora me gustaría que todas los directorios fueran de lectura para todo el mundo, a excepción de:
- el directorio INFO COMERCIAL, que me gustaría que el grupo DocuComercial pudiera escribir, borrar, ...
- el directorio DOC OT, el grupo DocuOT pudiera escribir y el resto no
- ....

Es posible hacerlo? Yo lo he intentado así, pero no funciona. Sólo aparece el propietario con todos los permisos.

Gracias

Código PHP:
Ver original
  1. <?php
  2.     $sc = "prueba";
  3.     $cliente = "carpeta";
  4.     if(!file_exists("../MAQUINES/".$sc."-".$cliente."/")){
  5.         mkdir("../MAQUINES/".$sc."-".$cliente."/",0777, true);
  6.         chmod("../MAQUINES/".$sc."-".$cliente."-".$cliente."/",0777);
  7.  
  8.         mkdir("../MAQUINES/".$sc."-".$cliente."/INFO COMERCIAL/",0774, true);
  9.         chgrp("../MAQUINES/".$sc."-".$cliente."/INFO COMERCIAL/", "DocuComercial");
  10.         chmod("../MAQUINES/".$sc."-".$cliente."/INFO COMERCIAL/",0774);
  11.  
  12.         mkdir("../MAQUINES/".$sc."-".$cliente."/DOC OT/",0774, true);
  13.         chgrp("../MAQUINES/".$sc."-".$cliente."/DOC OT/", "DocuOT");
  14.         chmod("../MAQUINES/".$sc."-".$cliente."/DOC OT/",0774);
  15.  
  16.         mkdir("../MAQUINES/".$sc."-".$cliente."/DOC ELEC/",0774, true);
  17.         chgrp("../MAQUINES/".$sc."-".$cliente."/DOC ELEC/", "DocuElectric");
  18.         chmod("../MAQUINES/".$sc."-".$cliente."/DOC ELEC/",0774);
  19.  
  20.         mkdir("../MAQUINES/".$sc."-".$cliente."/COMPRES/",0774, true);
  21.         chgrp("../MAQUINES/".$sc."-".$cliente."/COMPRES/", "DocuCompres");
  22.         chmod("../MAQUINES/".$sc."-".$cliente."/COMPRES/",0774);
  23.  
  24.         mkdir("../MAQUINES/".$sc."-".$cliente."/QUALITAT/",0774, true);
  25.         chgrp("../MAQUINES/".$sc."-".$cliente."/QUALITAT/", "DocuQualitat");
  26.         chmod("../MAQUINES/".$sc."-".$cliente."/QUALITAT/",0774);          
  27.     }
  28. ?>
no es posible , las funciones que usas, son solo para servidores LINUX, si quieres, puedes usar la extension , COM o DOT de php,

http://php.net/manual/es/class.com.php

o bien hacer uso de las funciones SHELL_EXEC, popen ,pastrhue o similares de php y hacer uso de los permisos

c:/> icacls "D:\test" /grant John:(OI)(CI)F /T

recuerda que para ello PHP debe de estar siendo ejecutado como Administrador, o con Permisos elevados para poder dar permisos
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.me/pools/c/87BTML2gwr
  #3 (permalink)  
Antiguo 24/12/2018, 02:58
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 546
Antigüedad: 17 años, 2 meses
Puntos: 4
Respuesta: Asignar permisos a las carpetas

Gracias tuadmin por tu respuesta. Me suenan a chino estas extensiones. Voy a googlear
Pero una pregunta, si creo manualmente estas carpetas con los permisos deseados, hay alguna manera de copiarlas igual, sólo cambiando el nombre?
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Última edición por mblascog; 24/12/2018 a las 03:11
  #4 (permalink)  
Antiguo 27/12/2018, 13:27
Avatar de alvaro_trewhela  
Fecha de Ingreso: octubre-2012
Ubicación: localhost
Mensajes: 960
Antigüedad: 6 años, 4 meses
Puntos: 110
Respuesta: Asignar permisos a las carpetas

Si vas a usar windows:
Código PHP:
Ver original
  1. function fullPermitFile($file){
  2. exec( 'icacls "'.$file.'" /q /c /reset' );
  3. }



La zona horaria es GMT -6. Ahora son las 13:13.