Newsgroup: it.comp.lang.delphi
Titolo: Modificare i permessi di un file in WINNT

Ciao a tutti,
devo poter aggiungere/rimuovere gruppi di utenti nei permessi di  
file/directory dal mio prog in Delphi 7.
Finora non ho trovato niente di riutilizzabile, e sto cercando di 
riusirci con l'utilizzo di alcune API di WIN anche se non riesco a 
trovare quali siano quelle da utilizzare.
Qualcuno ha qualche suggerimento? 
Grazie
--- posted by geoForum on 
http://www.delphiedintorni.it

 file/directory dal mio prog in Delphi 7.
Dai un'occhiata al file win32.hlp, ho trovato le seguenti funzioni nella 
categoria LAN Manager Functions.
File Functions
- NetFileEnum
- NetFileGetInfo
Group Functions
- NetGroupAdd
- NetGroupAddUser
- NetGroupDel
- NetGroupDelUser
- NetGroupEnum
- NetGroupGetInfo
- NetGroupGetUsers
- NetGroupSetInfo
- NetGroupSetUsers
Local Group Functions
- NetLocalGroupAdd
- NetLocalGroupAddMembers
- NetLocalGroupDel
- NetLocalGroupDelMembers
- NetLocalGroupEnum
- NetLocalGroupGetInfo
- NetLocalGroupGetMembers
- NetLocalGroupSetInfo
- NetLocalGroupSetMembers
Purtroppo io non posso aiutarti più di tanto, ma penso che questo possa 
essere un punto di partenza.
Ciao
---
Ryo GQI 

categoria LAN Manager Functions.
mmm grazie per il suggerimento quelle che mi hai indicato sono per la 
gestine utenti/gruppi.
Le api che in teoria dovrei usare sono get/setNamedSecurityInfo e 
add/deleteAce credo, della libreria "advapi32".
Per ora sono riuscito a farmi restituire il DACL del file che mi 
interessa (utilizzando getNamedSecurity info).
Quello che non riesco a fare é aggiungere (con addAce) un nuovo 
Utente/Gruppo al DACL che mi interessa con la fx addAce. Se qualcuno ha 
qualche esempio o suggerimento.. 
Grazie!


 qualche esempio o suggerimento..
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/_hosting_addace.asp
Prova a guardare questo esempio, e' in VB ed il porting non dovrebbe 
essere complicato.
Sempre su mdn ho trovato quest'articolo con esempio in C e la 
spiegazione dei passi seguiti.
http://support.microsoft.com/default.aspx?scid=kb;en-us;102102
Ciao.
---
Ryo GQI 

Grazie, ce l'ho fatta.
Ancora qualche dettaglio da sistemare ma le fx funzionano.
Ciao!


Ho un altro problema nell'utilizzare queste API.
Per la fx 
VOID BuildExplicitAccessWithName(
    PEXPLICIT_ACCESS pExplicitAccess,	// pointer to the structure to 
initialize
    LPTSTR pTrusteeName,	// name of the trustee to put in the 
structure
    DWORD AccessPermissions,	// access mask to put in the structure
    ACCESS_MODE AccessMode,	// access mode to put in the structure
    DWORD Inheritance	// inheritance type to put in the structure
   );


Ooops.. riformulo:
Ho un altro problema nell'utilizzare queste API.
Per la fx 
VOID BuildExplicitAccessWithName( 
       PEXPLICIT_ACCESS pExplicitAccess,// pointer to the structure to 
                                           initialize
       LPTSTR pTrusteeName,	// name of the trustee to put in the 
                                   structure
       DWORD AccessPermissions,	// access mask to put in the structure
       ACCESS_MODE AccessMode,	// access mode to put in the structure
        DWORD Inheritance	// inheritance type to put in the  
structure
   );
Ho un problema con la DWORD Inheritance, che puó assumere i seguenti 
valori:
CONTAINER_INHERIT_ACE	
 
INHERIT_ONLY_ACE	
 
NO_PROPAGATE_INHERIT_ACE	
OBJECT_INHERIT_ACE	
SUB_CONTAINERS_ONLY_INHERIT	
SUB_OBJECTS_ONLY_INHERIT	
SUB_CONTAINERS_AND_OBJECTS_INHERIT
Non riesco a trovare il loro vero valore, visto che passare come 
parametro INHERIT_ONLY_ACE (ad esempio) non viene riconosciuto.
Questo tipo di problema non é la prima volta che mi si pone e devo sempre 
cercare parecchio per trovare i valori cercati (li trovo tante volte per 
caso), e nelle Win32 references trovo solo i parametri e il loro 
significato...
Avrei bisogno del valore di questi attr e magari qualche suggerimento su 
come muovermi per cercare in genere..
Grazie mille


Controlla nei link seguenti:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthz/security/si_inherit_type.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/namespace_ace_flag_constants.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthz/security/authorization_functions.asp
Quando hai qualche dubbio  sull'uso delle API o sul significato dei 
parametri utilizzati, cerca su 
http://msdn.microsoft.com/library/
 e' il 
punto di riferimento per la programmazione di windows tramite le API.
Ciao.
---
Ryo GQI