Ich habe eine modifyFiledacl -Funktion, die das DACL einer Datei ändert. Wenn das ACE existiert, modifiziert die Funktion das vorhandene ACE, andernfalls fügt sie ein neues ACE hinzu. SID. Datei_generic_write . Dies ist jedoch eine vollkommen rechtliche Anfrage, da Sie das Verweigern, die -Lehre für eine Datei in Windows -Eigenschaften schreiben und dann die DACL mithilfe der System -Benutzeroberfläche weiter ändern können. Mit anderen Worten, ich möchte verhindern, dass ein bestimmtes SID die Datei bearbeitet, aber gleichzeitig die Fähigkeit beibehalten, die DACL zu ändern, wenn diese Erlaubnis zu Beginn vorhanden war.
Ich habe eine modifyFiledacl -Funktion, die das DACL einer Datei ändert. Wenn das ACE existiert, modifiziert die Funktion das vorhandene ACE, andernfalls fügt sie ein neues ACE hinzu. SID. Datei_generic_write . Dies ist jedoch eine vollkommen rechtliche Anfrage, da Sie das Verweigern, die -Lehre für eine Datei in Windows -Eigenschaften schreiben und dann die DACL mithilfe der System -Benutzeroberfläche weiter ändern können. Mit anderen Worten, [url=viewtopic.php?t=14917]ich möchte[/url] verhindern, dass ein bestimmtes SID die Datei bearbeitet, aber gleichzeitig die Fähigkeit beibehalten, die DACL zu ändern, wenn diese Erlaubnis zu Beginn vorhanden war.[code]#include #include #include #include #include #include #include
// if DACL present and not NULL if (dacl) { PACE_HEADER header; for (WORD i = 0; i < dacl->AceCount; i++) { if (GetAce(dacl, i, (PVOID*)&header)) { if (header->AceType == aceType) { auto ace = (ACCESS_ALLOWED_ACE*)header; // have the same binary layout as ACCESS_DENIED_ACE if (EqualSid((PSID)&ace->SidStart, pSID)) { set ? ace->Mask |= accessRights : ace->Mask &= ~accessRights; if (SetKernelObjectSecurity(hFile.get(), DACL_SECURITY_INFORMATION, pSD.get()) == 0) { return GetLastError(); }
return ERROR_SUCCESS; } } } } }
EXPLICIT_ACCESS ea; PACL pNewDACL = NULL;
// Initialize an EXPLICIT_ACCESS structure for the new ACE. ZeroMemory(&ea, sizeof(EXPLICIT_ACCESS)); ea.grfAccessPermissions = accessRights; ea.grfAccessMode = allowed ? SET_ACCESS : DENY_ACCESS; ea.grfInheritance = NO_INHERITANCE; ea.Trustee.TrusteeForm = TRUSTEE_IS_SID; ea.Trustee.ptstrName = (PWSTR)pSID;
result = SetEntriesInAcl(1, &ea, dacl, &pNewDACL); if (result != ERROR_SUCCESS) { return result; }
std::shared_ptr absoluteSD; result = ToAbsoluteSD(pSD, absoluteSD); if (result != ERROR_SUCCESS) { return result; }
Ich habe eine Funktion, die Datei_execute direkt in der DACL der Datei verweigern kann. So leugnen Sie die Funktion wie diese (siehe den vollständigen Code in der Hauptfunktion):...
Wie der Fragetitel vermuten lässt, würde ich sehr gerne wissen, wie man die NTFS -Berechtigungen der angegebenen Datei oder des angegebenen Ordners überprüfen kann (Hinweis: Dies sind diejenigen, die...
Ich habe eine AMP-Webstory erstellt, die ein Spiel enthält, das mithilfe eines auf einer der Seiten eingebettet ist. Das Spiel befindet sich auf einer externen Website und ich habe bereits die...
Ich bin nicht gut in Englisch, aber das Video gibt mir das Verständnis, dass MySQL beim Ausführen standardmäßig den Port verwendet, den XAMPP benötigt, um diesen lokalen Server MySQL zu erstellen....