Ich versuche, die Berechtigungen für Benutzerverzeichnisse zurückzusetzen, und habe einige Probleme mit dem letzten Schritt meines Skripts. Mein Skript übernimmt im Grunde genommen den Besitz des gesamten Benutzerverzeichnisses, setzt die Berechtigungen für alle Dateien und Ordner für das Verzeichnis zurück, gewährt explizit die von mir benötigten Berechtigungen, stoppt die Vererbung von Berechtigungen aus übergeordneten Ordnern und legt den rechtmäßigen Eigentümer (angegebenen Benutzer) für alle Dateien fest und Ordner und entfernt dann die Erlaubnis, die ich mir selbst gegeben habe, damit ich mit den Dateien arbeiten kann. Ich brauche diesen letzten Schritt, um mich aus ALLEN Dateien und Unterordnern zu entfernen, aber im Moment werden nur die% userDir% entfernt und alle geerbten Berechtigungen bleiben unten. Dies ist ein offensichtlicher Mangel bei ICACLS. Kennt jemand einen anderen Weg, um dies zu erreichen?
set /p userDir=Enter the login of the user's directory you're modifying permissions for. (i.e. jDoe)
TAKEOWN /f "E:\Home Directories\%userDir%" /r /d y
ICACLS "E:\Home Directories\%userDir%" /reset /T
ICACLS "E:\Home Directories\%userDir%" /grant:r "MYDOMAIN\%userDir%":(OI)(CI)F /grant:r "SYSTEM":(OI)(CI)F /grant:r "MYDOMAIN\%username%":(OI)(CI)F
ICACLS "E:\Home Directories\%userDir%" /inheritance:r
ICACLS "E:\Home Directories\%userDir%" /setowner "MYDOMAIN\%userDir%" /T
ICACLS "E:\Home Directories\%userDir%" /remove "MYDOMAIN\%username%"
Antworten:
Eine Beobachtung zuerst: Jedes Mal, wenn Sie die Vererbung blockieren, können Sie die zukünftige Flexibilität nicht mehr nutzen. Ich vermeide es, die Vererbung um jeden Preis zu blockieren.
Wenn Sie möchten, dass Benutzer den Inhalt des Ordners "E: \ Home Directories" der obersten Ebene auflisten können, ziehen Sie beispielsweise die folgende Berechtigung in Betracht:
Die letzte Berechtigung wird nicht in die Unterordner übernommen. In jedem Unterordner bleibt die Vererbung aktiviert und Sie geben einfach den Benutzer mit den Rechten "Ändern" oder "Vollzugriff" an (je nachdem, wie Sie der Meinung sind, dass Benutzer Berechtigungen in ihrem Basisverzeichnis festlegen können). (Normalerweise habe ich diese letzte Berechtigung festgelegt, indem ich "Authentifizierte Benutzer" im nicht "Erweiterten" Sicherheitseigenschaftenblatt hinzufügte und die Kontrollkästchen "Lesen" und "Lesen und Ausführen" deaktivierte. Anschließend gehe ich zum Dialogfeld "Erweitert" und ändere das Kontrollkästchen "Übernehmen auf" -Einstellung für diesen ACE auf "Nur dieser Ordner". Dies ist in Bezug auf die Anzahl der Klicks der einfachste Weg, ihn festzulegen.)
Dann wird Ihr Skript:
Ich bin der festen Überzeugung, dass das Hinzufügen der oben beschriebenen Berechtigung "Authentifizierte Benutzer" mit der Vererbung "Nur dieser Ordner" Ihnen das bietet, wonach Sie suchen, und Ihnen künftige Flexibilität bietet, wenn Sie dies herausfinden dass Sie eine Berechtigung festlegen müssen, die möglicherweise in Zukunft in allen Benutzer-Basisverzeichnissen vererbt werden muss.
Dies ist meine SOP für Benutzer-Ausgangsverzeichnisse, umgeleitete Ordner "Eigene Dateien", "Desktop" usw. und für Roaming-Benutzerprofilverzeichnisse. Es funktioniert super
Bearbeiten
Betreff: Ihr Kommentar zum Zugriff auf BUILTIN \ Administratoren
Ich habe im Laufe der Jahre verschiedene Auseinandersetzungen mit Leuten darüber geführt, wie ich BUILTIN \ Administrators Zugriff gewähren soll.
Es ist einfacher, eine bestimmte Klasse von Benutzerproblemen zu lösen, wenn Sie an ihre Dateien gelangen. Es ist ein Schmerz, "Besitz zu übernehmen" und kann recht langsam sein, wenn auch eine große Anzahl von Dateien vorhanden ist.
Wie Sie bei ICACLS gesehen haben, können BUILTIN \ Administratoren den Besitz "zuweisen" (abgesehen davon, dass sie ihn "übernehmen"), sodass keine "Sicherheit" hinzugefügt wird, wenn die Dateien nicht an erster Stelle für BUILTIN \ Administratoren zugänglich sind.
Wenn Sie nicht die Überwachung verwenden (und eine potenziell große Anzahl falsch positiver Einträge durchsuchen), wird kein Prüfpfad erstellt, wenn ein BUILTIN \ Administrators-Benutzer den Besitz von Dateien übernimmt, auf die er nicht zugreifen sollte, und diese kopiert und dann Gibt die Dateien an ihren "richtigen" Besitzer und ihre Berechtigung zurück.
In der Microsoft-Welt soll das Verschlüsseln von Dateisystemen (Encrypting Filesystem, EFS) das Problem lösen, dass nicht autorisierter BUILTIN \ Administrators-Zugriff verhindert wird. NTFS-ACLs lösen dieses Problem nicht. (Offensichtlich ist EFS nicht die einzige Show in der Stadt. Die Verschlüsselung ist die eigentliche Antwort auf das Problem, den Zugriff des Netzwerkadministrators einzuschränken, unabhängig davon, wie Sie es aufteilen.)
Wenn Sie BUILTIN \ Administrators nicht mit dem Zugriff auf Benutzer-Ausgangsverzeichnisse (und in der Tat auf jeden Ordner) angeben, erhöhen Sie meines Erachtens die Komplexität und die Zeit, die zur Behebung von Problemen erforderlich sind, während Sie weniger als keine echte Sicherheit bieten ("less than none") "weil es ein falsches Gefühl der Sicherheit vermittelt, wo es keines gibt".
Ich habe es aufgegeben, mich mit Menschen logisch auseinanderzusetzen. Bei manchen Menschen scheint es ein emotionales Problem zu sein. Es ist wie mit dem albernen ACE "Verweigern / Empfangen als", der am Stamm einer Exchange-Organisation platziert wird, um zu verhindern, dass bestimmte privilegierte Gruppen Benutzerpostfächer öffnen. Es bietet keine wirkliche Sicherheit (da ohne Prüfung der ACE bei Bedarf entfernt / erneut angewendet werden könnte), ein falsches Sicherheitsgefühl und behindert die Lösung wirklicher Probleme.
Auch wenn Sie BUILTIN nicht wie mein Argument tun \ Administratoren Zugriff haben Sie wollen die Vererbungshierarchie intakt halten , indem Sie „Nur diesen Ordner“ Vererbung , wo angemessen. Das Blockieren der Vererbung in Berechtigungshierarchien ist ein sicheres Zeichen dafür, dass etwas am Entwurf "kaputt" ist (invertiert usw.).
quelle
Zunächst einmal vielen Dank für Ihren Skriptauszug. Ich habe an der gleichen Sache gearbeitet, aber war an einem anderen Ort fest. Auf meiner SBS 2008-Box funktioniert der folgende Code für mich (vorausgesetzt, er wird natürlich erhöht ausgeführt). Ich habe ein icacls% userdir% / t eines brandneuen (Standard-) Benutzerordners erstellt und es mit dem icacls% userdir% / t eines Ordners verglichen, nachdem dieses Skript ausgeführt wurde, und es sieht aus wie alle "O's und Ich bin "richtig. Hoffentlich funktioniert es auch für Sie.
Freundliche Grüße,
quelle
Ich benötige Ihre Hilfe, um diesen Befehl gemäß meinen Anforderungen zu ändern, sofern dies technisch möglich ist.
Hier ist die Struktur
\ Server \ Parent \ UserA \ unix
\ Server \ Parent \ UserB \ unix
\ Server \ Parent \ UserC \ unix .... und so weiter
Unter jedem Ordner von User $ befindet sich ein Ordner mit dem Namen "unix".
Ich möchte einen Benutzer oder eine Gruppe mit vollständigen Berechtigungen für alle Benutzer $ -Ordner hinzufügen, die im Ordner "Parent" aufgeführt sind (Namen wie in der obigen Struktur angegeben), aber Berechtigungen nur für den Ordner "Unix" ausschließen.
Ich habe diesen Befehl, der für mich im Hinblick auf die Anwendbarkeit der erforderlichen Berechtigungen gut funktioniert, aber ich kann keine Ausschlussfunktion hinzufügen.
icacls "\\ Server \ Parent \ UserA" / Domäne \ Gruppe gewähren: (OI) (CI) F / T
Können Sie in diesem Szenario eine Anleitung geben?
quelle