it-swarm.com.de

IIS_IUSRS- und IUSR-Berechtigungen in IIS8

Ich bin gerade von IIS6 unter Win2003 zu IIS8 unter Win2012 gewechselt, um ASP.NET-Anwendungen zu hosten.

Innerhalb eines bestimmten Ordners in meiner Anwendung muss ich Dateien erstellen und löschen. Nach dem Kopieren der Dateien auf den neuen Server wurden beim Versuch, Dateien zu löschen, folgende Fehler angezeigt:

Der Zugriff auf den Pfad 'D:\WebSites\myapp.co.uk\companydata\filename.pdf' wird verweigert.

Wenn ich prüfe IIS Ich sehe, dass die Anwendung unter dem DefaultAppPool-Konto ausgeführt wird, habe ich jedoch niemals Windows-Berechtigungen für diesen Ordner eingerichtet, um IIS AppPool\einzuschließen. DefaultAppPool

Um Kunden nicht mehr zu schreien, habe ich stattdessen die folgenden Berechtigungen für den Ordner erteilt:

[~ # ~] iusr [~ # ~]

  • Lesen und ausführen
  • Ordnerinhalt auflisten
  • Lesen
  • Schreiben

IIS_IUSRS

  • Ändern
  • Lesen und ausführen
  • Ordnerinhalt auflisten
  • Lesen
  • Schreiben

Dies scheint funktioniert zu haben, aber ich bin besorgt, dass zu viele Privilegien festgelegt wurden. Ich habe online widersprüchliche Informationen darüber gelesen, ob [~ # ~] iusr [~ # ~] hier überhaupt benötigt wird. Kann jemand klären, welche Benutzer/Berechtigungen ausreichen würden, um Dokumente in diesem Ordner zu erstellen und zu löschen? Ist IUSR auch Teil der IIS_IUSRS-Gruppe?

Update & Lösung

Bitte siehe meine Antwort unten . Ich musste dies leider tun, da einige der jüngsten Vorschläge nicht gut durchdacht oder sogar sicher waren (IMO).

130
EvilDr

Ich hasse es, meine eigene Antwort zu veröffentlichen, aber einige Antworten haben kürzlich die Lösung, die ich in meiner eigenen Frage veröffentlicht habe, ignoriert und Lösungsansätze vorgeschlagen, die geradezu tollkühn sind.

Kurz gesagt - Sie müssen überhaupt keine Windows-Benutzerkontoberechtigungen bearbeiten . Dies birgt nur ein Risiko. Der Prozess wird vollständig in IIS mit geerbten Berechtigungen verwaltet.

Anwenden von Änderungs-/Schreibberechtigungen auf das Richtig Benutzerkonto

  1. Klicken Sie mit der rechten Maustaste auf die Domain, wenn sie in der Site-Liste angezeigt wird, und wählen Sie Berechtigungen bearbeiten

    enter image description here

    Auf der Registerkarte Sicherheit sehen Sie MACHINE_NAME\IIS_IUSRS ist aufgelistet. Dies bedeutet, dass IIS automatisch schreibgeschützt für das Verzeichnis ist (z. B. um ASP.Net auf der Site auszuführen). Sie müssen dies nicht bearbeiten eintrag .

    enter image description here

  2. Klicken Sie auf die Schaltfläche Bearbeiten und dann auf Hinzufügen ...

  3. Geben Sie in das Textfeld IIS AppPool\MyApplicationPoolName, wobei MyApplicationPoolName durch Ihren Domain-Namen ersetzt wird, z. IIS AppPool\mydomain.com

    enter image description here

  4. Drücken Sie die Taste Check Names. Der von Ihnen eingegebene Text wird umgewandelt (beachten Sie die Unterstreichung):

    enter image description here

  5. Drücken Sie [~ # ~] ok [~ # ~], um den Benutzer hinzuzufügen

  6. Wenn Sie den neuen Benutzer (Ihre Domain) ausgewählt haben, können Sie jetzt ohne Bedenken Ändern oder Schreiben Berechtigungen erteilen

    enter image description here

137
EvilDr

IUSR ist Teil der IIS_IUSER-Gruppe. Ich denke, Sie können die Berechtigungen für IUSR ohne Bedenken entfernen. Weiterführende Literatur

Mit der Zeit trat jedoch ein Problem auf, da immer mehr Windows-Systemdienste als NETWORKSERVICE ausgeführt wurden. Dies liegt daran, dass Dienste, die als NETWORKSERVICE ausgeführt werden, andere Dienste manipulieren können, die unter derselben Identität ausgeführt werden. Da in IIS Worker-Prozessen standardmäßig Code von Drittanbietern ausgeführt wird (klassischer ASP, ASP.NET, PHP Code), war es an der Zeit, IIS Worker-Prozesse von diesen Prozessen zu isolieren andere Windows-Systemdienste und führen IIS Worker-Prozesse unter eindeutigen Identitäten aus. Das Windows-Betriebssystem bietet eine Funktion namens "Virtuelle Konten", mit der IIS eindeutige Identitäten für jeden seiner Anwendungspools erstellen kann. DefaultAppPool ist der Standardpool, der allen von Ihnen erstellten Anwendungspools zugewiesen wird.

Um die Sicherheit zu erhöhen, können Sie die IIS DefaultAppPool-Identität in ApplicationPoolIdentity ändern.

In Bezug auf die Berechtigung fasst Create and Delete alle Rechte zusammen, die erteilt werden können. Was auch immer Sie der Gruppe IIS_USERS zugewiesen haben, ist das, was sie benötigen. Nicht mehr, nicht weniger.

hoffe das hilft.

49
Travis G

Als ich die Berechtigung IIS_IUSRS zum Site-Ordner hinzufügte, war der Zugriff auf Ressourcen wie js und css immer noch nicht möglich (Fehler 401, verboten). Als ich jedoch IUSR hinzufügte, wurde es ok. Also sicher "Sie KÖNNEN die Berechtigungen für IUSR NICHT ohne Sorge entfernen", lieber @Travis G @

6
Alexander

@EvilDr Sie können ein IUSR_-Konto [ID] in Ihrer AD-Umgebung erstellen und den jeweiligen Anwendungspool unter diesem IUSR_-Konto [ID] ausführen lassen:

"Anwendungspool"> "Erweiterte Einstellungen"> "Identität"> "Benutzerdefiniertes Konto"

Stellen Sie Ihre Website in den erweiterten Einstellungen auf "Anwenderbenutzer (Passthrough-Authentifizierung)" und nicht auf "Bestimmter Benutzer" ein.

Vergeben Sie nun für IUSR_ [Bezeichner] die entsprechenden NTFS-Berechtigungen für Dateien und Ordner, z. B .: Ändern Sie die Firmendaten.

3
Jan Reilink

Die IIS_IUSRS-Gruppe hat nur dann eine herausragende Stellung, wenn Sie ApplicationPool Identity verwenden. Auch wenn diese Gruppe zur Laufzeit leer aussieht IIS fügt dieser Gruppe einen Arbeitsprozess gemäß der Microsoft-Literatur hinzu.

3
Ashburn RK

Ich würde einen bestimmten Benutzer (und NICHT einen Anwendungsbenutzer) verwenden. Dann werde ich Identitätswechsel in der Anwendung aktivieren. Sobald Sie dieses Konto als bestimmten Benutzer festgelegt haben, werden diese Anmeldeinformationen verwendet, um auf lokale Ressourcen auf diesem Server zuzugreifen (nicht für externe Ressourcen).

Die spezifische Benutzereinstellung ist speziell für den Zugriff auf lokale Ressourcen gedacht.

0
developer747