it-swarm.com.de

Verwenden von ICACLS zum Festlegen von Berechtigungen für Benutzerverzeichnisse

Ich versuche, Berechtigungen für Benutzerverzeichnisse zurückzusetzen, und habe Probleme mit dem letzten Schritt meines Skripts. Mein Skript übernimmt grundsätzlich den Besitz des gesamten Benutzerverzeichnisses, setzt die Berechtigungen für alle Dateien und Ordner für das Verzeichnis zurück, erteilt explizit die erforderlichen 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 die Dateien bearbeiten kann. Ich brauche diesen letzten Schritt, um mich aus ALLEN Dateien und Unterordnern zu entfernen, aber im Moment entfernt er mich nur aus% userDir% und lässt alle geerbten Berechtigungen 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%"
16
pk.

Eine Beobachtung zuerst: Jedes Mal, wenn Sie die Vererbung blockieren, schneiden Sie sich von der zukünftigen Flexibilität ab. Ich vermeide es, die Vererbung um jeden Preis zu blockieren.

Wenn Sie beispielsweise Benutzer benötigen, die den Inhalt des Ordners "E:\Home Directories" der obersten Ebene auflisten können, sollten Sie die folgende Berechtigung berücksichtigen:

  • SYSTEM - Vollzugriff - Wird auf diesen Ordner, Unterordner und Dateien angewendet
  • BUILTIN\Administrators - Vollzugriff - Wird auf diesen Ordner, Unterordner und Dateien angewendet
  • BUILTIN\Authentifizierte Benutzer - Lesen und Ausführen - Wird nur auf diesen Ordner angewendet

Die letzte Berechtigung wird nicht in die Unterordner übernommen. In jedem Unterordner bleibt die Vererbung aktiviert, und Sie geben den Benutzer einfach mit den Rechten "Ändern" oder "Vollzugriff" an (je nachdem, wie Sie der Meinung sind, dass Benutzer Berechtigungen in ihrem Ausgangsverzeichnis festlegen können). (Normalerweise setze ich diese letzte Berechtigung, indem ich "Authentifizierte Benutzer" in das Sicherheits-Eigenschaftenblatt "Nicht" Erweitert "einfüge und die Kontrollkästchen" Lesen "und" Lesen und Ausführen "deaktiviere. Anschließend gehe ich zum Dialogfeld" Erweitert "und ändere das Die Einstellung "Anwenden auf" für diesen ACE auf "Nur dieser Ordner". Dies ist in Bezug auf die Anzahl der Klicks der einfachste Weg, dies festzulegen.)

Dann wird Ihr Skript:

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
ICACLS "E:\Home Directories\%userDir%" /setowner "MYDOMAIN\%userDir%" /T

Ich bin der festen Überzeugung, dass das Hinzufügen der oben beschriebenen Berechtigung "Authentifizierte Benutzer" mit der Vererbung "Nur dieser Ordner" Ihnen die Funktionalität bietet, die 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 alle Home-Verzeichnisse des Benutzers übernommen werden muss.

Dies ist mein SOP für Benutzer-Home-Verzeichnisse, umgeleitete Ordner "Eigene Dateien", "Desktop" usw. und für Roaming-Benutzerprofil-Verzeichnisse. Es funktioniert hervorragend.

Bearbeiten

betreff: Ihr Kommentar zum Zugriff auf BUILTIN\Administrators

Ich hatte verschiedene Auseinandersetzungen mit Leuten über meine Einstellung, BUILTIN\Administrators im Laufe der Jahre Zugriff zu gewähren, und meine Einstellung lautet wie folgt:

  • Es ist einfacher, eine bestimmte Klasse von Benutzerproblemen zu lösen, wenn Sie zu deren Dateien gelangen. Es ist ein Schmerz, "Besitz zu übernehmen" und kann ziemlich 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" (außer "übernehmen"), sodass keine "Sicherheit" hinzugefügt wird, wenn die Dateien für BUILTIN\Administrators überhaupt nicht zugänglich sind.

  • Wenn Sie die Überwachung nicht verwenden (und möglicherweise eine große Anzahl falsch positiver Einträge durchsuchen), gibt es keinen Prüfpfad, wenn ein Benutzer von BUILTIN\Administrators den Besitz von Dateien übernimmt, auf die er nicht zugreifen sollte, kopiert und dann gibt die Dateien an ihren "richtigen" Besitzer und ihre Berechtigung zurück.

  • In der Microsoft-Welt soll das Encrypting Filesystem (EFS) das Problem lösen, dass nicht autorisierter Zugriff auf BUILTIN\Administrators verhindert wird. NTFS-ACLs lösen dieses Problem nicht. (Offensichtlich ist EFS nicht die einzige Show in der Stadt. Verschlüsselung ist die eigentliche Antwort auf die Lösung des Problems "Zugriff des Netzwerkadministrators einschränken", unabhängig davon, wie Sie es aufteilen.)

Wenn Sie BUILTIN\Administrators nicht mit Zugriff auf Benutzerverzeichnisse (und in der Tat auf jeden Ordner) angeben, bedeutet dies meines Erachtens, dass Sie die Komplexität und Zeit erhöhen, die zur Behebung von Problemen erforderlich sind, und gleichzeitig weniger als keine echte Sicherheit bieten ("weniger als keine") "weil es ein falsches Sicherheitsgefühl vermittelt, wo es keines gibt).

Ich habe es aufgegeben, den Streit mit Menschen logisch zu gewinnen. Bei manchen Menschen scheint es ein emotionales Problem zu sein. Es ist wie bei der albernen ACE "Verweigern/Empfangen als", die im Stammverzeichnis einer Exchange-Organisation abgelegt wird, um zu verhindern, dass bestimmte privilegierte Gruppen Benutzerpostfächer öffnen. Es bietet keine wirkliche Sicherheit (da ohne Prüfung die ACE bei Bedarf entfernt/erneut angewendet werden könnte), ein falsches Sicherheitsgefühl und stört die Lösung realer Probleme.

Auch wenn Ihnen mein Argument, dass BUILTIN\Administratoren Zugriff auf Sie haben, nicht gefällt want, um die Vererbungshierarchie intakt zu halten, indem Sie gegebenenfalls die Vererbung "Nur dieser Ordner" verwenden. Das Blockieren der Vererbung in Berechtigungshierarchien ist ein sicheres Zeichen dafür, dass etwas am Design "kaputt" ist (invertiert usw.).

18
Evan Anderson

Zunächst einmal vielen Dank für Ihren Skriptauszug. Ich habe an der gleichen Sache gearbeitet, war aber an einem anderen Ort festgefahren. 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, der vom Betriebssystem erstellt wurde, und es mit dem icacls% userdir%/t eines Ordners verglichen, nachdem dieses Skript ausgeführt wurde, und es sieht aus wie alle "O's and" Ich bin "richtig. Hoffentlich funktioniert es auch für Sie.

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
ICACLS "E:\Home Directories\%userDir%\*.*" /grant:r "SYSTEM":(OI)(CI)F /grant:r "MYDOMAIN\%userDir%":(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%" /t

Freundliche Grüße,

 -d
1
user16680