Veröffentlicht 26. September 200222 j Hallo Leute, ich würde gerne Wissen wie ich einem Verzeichnis Berechtigungen zuweisen kann?? Damit meine Ich: Arbeiter A darf Lesen Arbeiter C darf schreiben und Lesen Vorstand darf alles Wie lässt sich das ganze auf einem Win2000 Rechner bewerkstelligen????? danke deluxeone
26. September 200222 j Original geschrieben von deluxeone Wie lässt sich das ganze auf einem Win2000 Rechner bewerkstelligen?????Was auch immer die Antwort sein wird, sie ist hochgradig Windows-spezifisch. Drum schieb ich Dich mal dahin, wo die Frage passt . Thema verschoben nach: C++: Compiler, IDEs, APIs
26. September 200222 j Hey was hat mein Thema mit Windows Betriebssyteme zu tun wenn ich ein Script brauche wie ich in C++ eine Verzeichnis erstellen und dabei das Verzeichnis mittels eines Scripts in C++ freigebe für User........auf einem Win2000 Rechner....... Mein Frage bezieht sich schon auf das Thema C++. Nämlich wie ich 1. ein Verzeichnis erstelle 2. das Verzeichnis freigebe Und komm mir nicht mit der Rechten Maustasten Philo.......Freigeben und dann Berechtigungen......für 1000 User Verzeichnis erstellen + Freigeben...Ha Ha Ha....... Nein Danke!!! Also schieb mich mal schön wieder zurück Klotzkopp danke deluxeone
26. September 200222 j Zwei Punkte: Erstens sind Anmerkungen zu Moderationsentscheidungen in den jeweiligen Fachforen OffTopic, so was klärt man besser per PM. Zweitens solltest Du vielleicht nochmal genau nachsehen, wohin ich Deinen Beitrag verschoben habe, und die Kritik (und vielleicht auch die Form, in der sie angebracht wurde) überdenken. Alternativ kannst Du mir sagen, wie das, was Du vorhast, mit Standard-C/C++ funktionieren soll, dann schiebe ich Dich gern zurück.
26. September 200222 j Ok die Alternative: #include <direct.h> //Borland: statt direct.h dir.h void main() { _mkdir("C:/Test");//Verzeichnis erstellen _rmdir("C:/Test");//Verzeichnis löschen } So erstelle ich ein Verzeichnis.....Ok das habe ich ja schon selber herausgefunden......und jetzt wie vergebe ich Berechtigungen auf das Verzeichnis ???????? gruß deluxeone
26. September 200222 j Wenn Du die Verzeichnisse mit CreateDirectory anlegst, kannst Du die Zugriffsrechte über die SECURITY_ATTRIBUTES-Struktur definieren. Dazu musst Du Dich mit ACLs und SIDs und dem ganzen Sicherheitskram rumschlagen. Die wahrscheinlich einfachere Alternative: cacls ausführen - über system oder ShellExecute.
27. September 200222 j Jedoch wie binde ich das ganze ein...du musst verstehen das ich das selber noch nicht gemacht habe und nun das Problem habe den Aufbau zu Struktuieren... Kannst du mir ein Beispiel erstellen.....???!?! Wäre dankbar.......... gruß deluxeone
27. September 200222 j Hier ein einfaches Beispiel, ohne Fehlerbehandlung: SECURITY_ATTRIBUTES sa; SECURITY_DESCRIPTOR sd; BYTE sidBuffer[100]; BYTE aclBuffer[500]; PSID psid=(PSID) &sidBuffer; PACL pacl=(PACL) &aclBuffer; DWORD sidBufferSize = 100; char domainBuffer[80]; DWORD domainBufferSize = 80; SID_NAME_USE snu; InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION); InitializeAcl(pacl, 500, ACL_REVISION); LookupAccountName(0, "Benutzername", psid, &sidBufferSize, domainBuffer, &domainBufferSize, &snu); AddAccessAllowedAce(pacl, ACL_REVISION, GENERIC_READ | GENERIC_WRITE, psid); SetSecurityDescriptorDacl(&sd, TRUE, pacl, FALSE); sa.nLength= sizeof(SECURITY_ATTRIBUTES); sa.bInheritHandle = FALSE; sa.lpSecurityDescriptor = &sd; CreateDirectory("C:\\Verzeichnis", &sa);[/CODE]Dieses Beispiel legt ein Verzeichnis "C:\Verzeichnis" an, und erteilt dem Benutzer "Benutzername" des lokalen Rechners Lese- und Schreibrechte. Wenn Du mehr als einem Benutzer Rechte einräumen willst, musst Du entsprechend LookupAccountName mehrfach aufrufen, um an die SIDs zu gelangen, daraus ACEs zu machen, und der ACL hinzuzufügen. Falls Du explizit Rechte entziehen willst, musst Du darauf achten, zuerst die AddAccessDeniedAce-Aufrufe zu machen, und danach erst die Aufrufe von AddAccessAllowedAce. Welche Rechte es explizit sind, steht im dritten Parameter von AddAccessAllowed/DeniedAce. Wenn das Verzeichnis schon existiert, musst Du CreateFile verwenden, um die Berechtigungen zu ändern.
8. Oktober 200222 j Danke, jedoch bekomme ich Fehlermeldungen von denen ich vollkommen überfordet bin. Hat es jemand ein wenig kompakter oder kann mir jemand helfen bei der Korrektur?!?! Bin Dankbar für jede Hilfe...... gruss deluxeone
8. Oktober 200222 j Wird schwierig, wenn Du uns die Fehlermeldungen nicht nennst . Was die Kompaktheit angeht, bei dem Code fehlen sogar die Fehlerprüfungen. Alle Funktionsaufrufe in dem Beispiel können fehlschlagen, was natürlich behandelt werden muss. Die Alternative, und IMHO erheblich einfacher, dürfte immer noch sein, aus dem Programm heraus das Tool cacls aufzurufen.
11. Oktober 200222 j Ja klar fehlt alles, du hast ja den ganzen Header usw. vergessen.... da brauche ich gar nicht zu Compilieren, weil er die ganzen Funktionen nicht kennt.....kannst du mir nicht den kompletten Quellcode geben????? gruß deluxeone
11. Oktober 200222 j #include <windows.h> Wenn das nicht hilft, nenn uns doch bitte die Fehlermeldungen.
14. Oktober 200222 j OK soweit so gut es klappt...... Warum sehe ich aber nicht was der Benutzer für Berechtigungen hat???? Damit meine Ich lege einen Ordner an mit dem Verzeichnis BEnutzernamen jedoch kann ich nicht sehen wie die Berechtigungen sind????? Warum geht das nicht????? Noch was wie binde ich das ganz ein bei 1000 User wobei Userid = Verzeichnis sein soll und gleichzeitig die Berechtigungen vergeben werden sollen.... Noch was wo kann ich das Nachlesen was alles was ist und was es heisst.... Dank schon mal für deine Hilfe..... Gruß deluxeone
14. Oktober 200222 j Original geschrieben von deluxeone Warum sehe ich aber nicht was der Benutzer für Berechtigungen hat???? Damit meine Ich lege einen Ordner an mit dem Verzeichnis BEnutzernamen jedoch kann ich nicht sehen wie die Berechtigungen sind?????Was meinst Du mit "kann ich nicht sehen"? Noch was wie binde ich das ganz ein bei 1000 User wobei Userid = Verzeichnis sein soll und gleichzeitig die Berechtigungen vergeben werden sollen....Hast Du eine Liste der Benutzer, oder musst Du die erst noch holen? Noch was wo kann ich das Nachlesen was alles was ist und was es heisst....MSDN Library, unter Security->Authorization. Da hab ich auch alles her, was ich Dir bisher erzählt habe .
8. April 200916 j Hallo, ich muss mich mal hier ranhängen. Ich erstelle auf einem Remotcomputer mit einem Service-Account Ordner. Nun ist dieser Service-Account der Besitzer und der Nutzer des Remote-Computers kann die Verzeichnisse nicht löschen. Soll er aber dürfen. Was muss ich angeben, um den Besitzer gleich auf den Nutzer festzulegen?
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.