Mon programme de service exécute une autre instance de lui-même avec, essentiellement, CreateProcess(GetCommandLine())
. Le processus enfant utilise ensuite OpenProcess
pour obtenir un handle de son processus parent (afin qu'il puisse détecter le moment où le parent a cessé de s'exécuter). Pour certains clients, OpenProcess
échoue avec ERROR_ACCESS_DENIED
. J'essaie de déterminer la raison et de reproduire les circonstances pour les tests internes. Je veux quelque chose que je peux envoyer aux clients (soit un programme, soit des instructions pour utiliser des programmes qui sont déjà couramment installés sur les serveurs Windows) pour qu'ils s'exécutent et génèrent un rapport incluant le compte sur lequel le service s'exécute et quels privilèges ce compte et ses groupes ont été accordés ou refusés. Comment puis-je recueillir cette information auprès des clients?Que rapportera les permissions d'un compte?
1
A
Répondre
0
Obtenir le nom de compte est facile - GetUserName
. Obtenir les droits assignés à ce compte est un peu plus de travail. Si ma mémoire est bonne, la séquence passe quelque chose comme:
GetKernelObjectSecurity(Current_oject, &security_descriptor)
GetSecurityDescriptorDacl(security_descriptor, &dacl)
GetEffectiveRightsFromAcl(dacl, user_name, &rights)
Vous pourriez préférer utiliser GetExplicitEntriesFromAcl
pour cette dernière étape. Il y a un problème avec tout ceci: s'ils ont trop restreint l'utilisateur, certains (ou tous) peuvent échouer aussi.
Questions connexes
- 1. Comment copier les permissions ntfs
- 2. Toutes les permissions avec declaration_authorization
- 3. python shutil.copytree - ignore les permissions
- 4. permissions servicecontroller
- 5. Permissions requises
- 6. Wordpress permissions
- 7. SVN Hook n'a pas les permissions d'écriture
- 8. SVN Exporter tout en conservant les permissions
- 9. Comment modifier/afficher les permissions en C
- 10. Autorisation/authentification basée sur les rôles/permissions?
- 11. vérifier les permissions des répertoires en python
- 12. c lire les permissions d'un fichier
- 13. CakePHP: Que utiliser pour les utilisateurs et les permissions de MySQL?
- 14. php javascript permissions probleme
- 15. MS Access: problèmes de permissions avec les vues
- 16. Facebook notifications.sendEmail - Permissions insuffisantes
- 17. django répertoire apache2 permissions
- 18. Demande de permissions avant que l'utilisateur accède à l'application
- 19. Permissions .NET WCF
- 20. apache permissions erreur
- 21. Quelles sont les permissions pour les scripts/répertoires PHP?
- 22. Est-ce que ça compte, Whitespace entre les éléments HTML?
- 23. Est-ce que DDE compte toujours? Quelles sont les alternatives?
- 24. mkdir nant permissions
- 25. Flash Webcam Permissions
- 26. Projet d'installation Visual Studio - exécuté en tant que compte système
- 27. Définir les permissions du fichier php afin que seul le curl de mon serveur puisse s'exécuter
- 28. Compte les valeurs énumérées?
- 29. Problème de permissions django/apache
- 30. Android/Linux File Permissions problème
Je pourrais peut-être travailler avec ceci. Mais quel objet noyau devrais-je passer à GetKernelObjectSecurity? Je devine GetCurrentProcess, puisque je veux savoir ce que le processus actuel est autorisé à faire. MSDN dit que j'ai besoin de l'autorisation READ_CONTROL pour appeler cette fonction, mais cela ne devrait pas être un problème puisque le processus demande des informations sur lui-même, n'est-ce pas? –
Oui, vous voudriez que le processus actuel soit géré (je pense). Oui, je pense que vous aurez presque toujours la permission de voir cela, mais c'est difficile à dire - il est probablement possible de mettre en place des permissions pour empêcher cela. –