Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben
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

Geschrieben

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

Geschrieben

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.

Geschrieben

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

Geschrieben

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.

Geschrieben

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

Geschrieben

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.

  • 2 Wochen später...
Geschrieben

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

Geschrieben

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.

Geschrieben

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

Geschrieben

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

Geschrieben
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 ;).
  • 6 Jahre später...
Geschrieben

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?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...