beowulf1980
Goto Top

Setzen von Ordnerberechtigungen per Batch

Hi,

ich hab ne Aufgabe bekommen ein Skript zu schreiben, das Ordnerberechtigungen nach bestimmten Vorgaben setzt. Ich weiss nicht ob das per Batch lösbar ist, deswegen wollte ich hier erst mal fragen bevor ich anfange mich da noch tiefer einzulesen. Wenn das geht bin ich natürlich auch für alle Ratschläge dankbar.

Ich glaub ich schilder einfach mal am besten was wir hier vorhaben.
Meine Firma ist in der Forschung tätig und wir haben immer relativ viele Projekte am laufen, die natürlich auch viel Dateikram und so erzeugen.
Da bei Forschung sowas ja auch immer Geheimhaltung unterliegt dürfen auf jeden Projektordner nur bestimmte Leute zugreifen. Und unterhalb dieses Ordners auch nur auf bestimmte.

Das Schema sieht so aus
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status\A_Angebot
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status\A_Berichte
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status\F_Bilder
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status\F_Messdaten_und_Messprotokolle
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status\V_Angebote_Geraete_und_Leistungen_Dritter
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status\V_Finanzierungsplan_und_Kontobericht
Dieser Teil mit den ___ dazwischen bekommt dann natürlich immer andere Werte.
Die Unterstruktur bleibt aber immer so.

Meine Idee war jetzt da ich das ja nicht bei allen Projekten immer händisch einstellen will das ich mir von dem jeweiligen Projektersteller in dem Ersten Ordner ne .txt ablegen lasse zb nach dem Schema
A-Ordner
User1___schreiben___lesen___ändern
User2___lesen
User3___ändern

F-Ordner
User2___schreiben___lesen
User4___lesen
User5___ändern

V-Ordner
User1___schreiben
User4___schreiben
Der User der als Bearbeiter in dem ersten Verzeichnis ist und natürlich ich als Domänenadmin sollen Vollzugriff auf alles darunter bekommen.

Auf die Unterordner soll dann eben genau das angewendet werden wie es in der txt-file drinsteht.

Ich hoffe ich habs gut genug erklärt.

Es wäre echt super wenn mir jemand sagen kann ob das mit Batch realisierbar wäre.

Hm ich seh gerade entschuldigung das die Ordnernamen so komisch aussehen aber eigentlich sollten da underscores auftauchen. Anscheinend wird dann automatisch ne Unterstreichung vorgenommen.

Gruß
beowulf

[Edit Biber] Ein bisschen in gesetzt [/Edit]

Content-Key: 72231

Url: https://administrator.de/contentid/72231

Printed on: April 24, 2024 at 22:04 o'clock

Member: TuXHunt3R
TuXHunt3R Oct 29, 2007 at 18:10:36 (UTC)
Goto Top
Berechtigungen verteilen geht per Batch! Die Gruppen müssen aber vorher schon existieren. Sieh dir dazu das Tool xcacls.exe an. Damit kannst du Berechtigungsgruppen oder User auf einem Ordner oder einer Datei berechtigen.

Allgemein empfehle ich dir folgende Strategie: Du erstellst pro speziell abgesicherten Ordner zwei Berechtigungsgruppen: Eine mit den NTFS-Rechten "Ändern" und eine mit den NTFS-Rechten "Lesen". Du erstellst also pro Share erstmal mindestens zwei Benutzergruppen (Ändern und Lesen). Diese berechtigst du auf der obersten Ebene dieses Shares und vererbst die Berechtigungen auf alle untergeordneten Objekte. In diese zwei Usergruppen packst du die User rein, die zumindest mal auf den Share Zugriff haben müssen.

Wenn du nun einen Unterordner speziell schützen willst, erstellst du für diesen Ordner zwei weitere Benutzergruppen (Ändern und Lesen) und packst dort wieder die entsprechenden User rein. Diese Berechtigung vererbst du dann wieder auf die untergeordneten Objekte usw.

Verwende die jeweiligen Berechtigungsgruppen jeweils nur für den dazugehörigen Ordner und für nichts anderes. Wenn du an einem anderen Ort etwas speziell schützen willst, erstell zwei neue Gruppen und pack die entsprechenden User wieder dort hinein.

Wir machen es im Betrieb auch so und diese Lösung ist am Anfang vielleicht mühsam zu realisieren, da viele Usergruppen erstellt werden müssen, aber danach hast du Ordnung und weisst immer, wo genau einer berechtigt ist.
Member: beowulf1980
beowulf1980 Oct 29, 2007 at 19:03:14 (UTC)
Goto Top
Hi erstmal danke für die Antwort.
Also das mit dem xcacls werde ich mir mal anschauen.
Aber deine Methode ist glaube ich für mich nicht praktikabel. Da ich ja dann jedesmal wenn ein neuer Ordner für ein Projekt angelegt wird die beiden Gruppen erstellen muss.
Und unterhalb der Ordner wird ja dann wieder aufgeteilt wer was darf.

Das ist ja dann im Endeffekt ein nie endender Aufwand den ich da betreibe. Denn es wird kaum Projekte geben an denen exakt diesselben Leute arbeiten.

Gruß
Beowulf
Member: TuXHunt3R
TuXHunt3R Oct 29, 2007 at 22:21:04 (UTC)
Goto Top
Wie gesagt, so machen wir es im Betrieb und es funktioniert. Wir haben allerdings, wenn man sich die schiere Grösse meines Betriebs anschaut (55'000 Mitarbeiter), Leute aus einzelnen Abteilungen dazu "verdammt", die Rechteverwaltung zu übernehmen. Diese Leute nennen sich Shareowner und diese haben die Berechtigung, auf den Shares Leute in Benutzergruppen hineinzupacken. Wir müssen hier "nur" noch Administrationsaufwand betreiben, wenn ein Ordner neu abgesichert werden muss, d.h. neue Berechtigungsgruppen erstellt werden müssen. Die User abfüllen kann dann der Shareowner.

Im Allgemeinen würde ich dir einfach davon abraten, einzelne User auf Ablagen zu berechtigen. Auch abraten würde ich dir von der Möglichkeit, Berechtigungen auf einzelne Dateien zu setzen. Setz die Berechtigungen lieber auf die Ordner. Wenn du diese zwei "Regeln" befolgst, verhinderst du zumindest das totale Chaos.
Member: beowulf1980
beowulf1980 Oct 29, 2007 at 22:56:28 (UTC)
Goto Top
Hi TuxHunt3r,

nochmals danke für deine Antwort.
Also meine Firma ist da mit 200 Mitarbeitern doch relativ klein.

Wir sind halt in der Forschung und ich kann keinem wissenschaftlichem Mitarbeiter zumuten das er sich um die Berechtigungen für Ordner kümmert.

Aber an das andere was du geschrieben hast wollte ich mich eh halten.

Dann um vielleicht nochmal auf nen anderen Teil aus meiner Frage zurückzukommen.
Kann ich mit Batch eine Datei öffnen, die Werte die da drin stehen in Variablen setzen und diese Variablen wieder in der ursprünglichen Batch weiterverwenden ?

Gruß
Beowulf
Member: Biber
Biber Oct 30, 2007 at 06:44:53 (UTC)
Goto Top
Moin Beowulf,

zu Deiner letzten Frage: ja, es ist mit Batch möglich, Textdateien auszulesen und die jeweiligen Inhalte als Variablen/Parameter in einem Batch zu verwenden.

Wenn Du es transparent und pflegbar halten willst, würde ich Dein oben vorgeschlagenes Format (sinngemäß) so ändern:
A-Ordner: User1: schreiben, lesen, ändern
A-Ordner: User2: lesen
A-Ordner: User3: ändern

F-Ordner: User2: schreiben, lesen
F-Ordner: User4: lesen
F-Ordner: User5: ändern

V-Ordner: User1: schreiben
V-Ordner: User4: schreiben
da Textdateien im Batch besser zeilenorientiert ausgewertet werden können als wenn sie die weniger redundante Struktur von Ini-Dateien haben (so mit Sections und Entry=Value, wie Du oben skizziert hast).

Die Variante von mir, die dann abzählbar viele Schlüsselworte enthält ("lesen", "ändern", schreiben"- Enum heißt das wohl auf neudeutsch) und erkennbare eindeutiger Trennzeichen (die ":" ) ließe sich dann mit einer Kombination von 'Find "schlüsselwort" in Datei.txt' und/oder in einer FOR/F-Anweisung auswerten.

Und, was wichtiger wäre: der Aufbau ist toi toi toi für jeden DAU unmissverständlich.
Beispiele für solche FOR /F-Bätche findest Du in Bereich "Batch & Shell".

Grüße
Biber
Member: beowulf1980
beowulf1980 Oct 30, 2007 at 09:49:26 (UTC)
Goto Top
Hi Biber.

Super. Vielen Dank.
Daraus kann ich bestimmt was machen.

Wenn ich den ersten Rohbau fertig poste ichs mal, dann kannst du ja vielleicht mal drüberschauen.

Gruß
Beowulf
Member: MoeHB
MoeHB Nov 12, 2007 at 13:13:06 (UTC)
Goto Top
hallo,

wie kann ich denn (x)cacls dazu nutzen, die veerbung zu deaktivieren.
Ich habe da eine Situation da darf eine Gruppe nur die Berechtigung
"Vollzugriff: Nur für diesen Ordner" haben.

Hat jemand eine Idee?