Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Windows Server 2008, PHP, IIS und die Rechte

Frage Entwicklung PHP

Mitglied: Niranda

Niranda (Level 1) - Jetzt verbinden

27.01.2010 um 12:27 Uhr, 8816 Aufrufe, 10 Kommentare

ein php-script soll den Ordnerinhalt auslesen, hat aber anscheinend keine Berechtigung dafür

Hallöle,
ich bekomm es irgendwie nicht mit den Rechten gebacken - tut mir leid.

Also, als erstes habe ich ein simples PHP-Skript, welches im Ordner "D:\InetPub\vhosts\blabla.de\httpdocs" liegt.
Das Skript soll einfach nur einen Ordner auf erster Ebene auslesen und den inhalt auflisten:
01.
 <?php 
02.
 
03.
$pfad = "D:\\Temp\\BAK"
04.
 
05.
$ausgabe = @opendir($pfad) or die("$pfad do not exist"); 
06.
 
07.
while ($datei = readdir($ausgabe)) 
08.
09.
	if(($datei != ".") and ($datei != "..")){ 
10.
		echo "<a href=\"$datei\">$datei</a><br>"
11.
12.
13.
 
14.
closedir($ausgabe); 
15.
 
16.
?> 
In dem Ordner "D:\InetPub\vhosts\blabla.de\httpdocs", wo das Skript drin liegt, klappt alles wunderbar, auch die website selbst. Also ich geb als $Pfad "D:\\InetPub\\vhosts\\blabla.de\\httpdocs" an und er listet alles auf.
Wenn ich allerdings ein "externes" Verzeichnis durchforsten will, z.B. "D:\Temp\BAK", streikt das skript und spuckt mir die Fehlermeldung "D:\Temp\BAK do not exist" aus.

Ich habe auf das Verzeichnis "D:\Temp\BAK" auch schon für "Jeder" Vollzugriff gegeben, klappt nicht. =/
Lokal mit meiner Anmeldung als admin klappt es aber.

Ich weiß nicht weiter, hoffentlich jemand von Euch - Dankeschön schonmal! =))
LG, Nira
Mitglied: 48507
27.01.2010 um 12:41 Uhr
"Jeder" Vollzugriff auch für D:\Temp (Vererbung)? Der IIS läuft normalerweise als IUSR_COMPUTERNAME. Diesem User musst du die entsprechenden Rechte geben.
Bitte warten ..
Mitglied: Niranda
27.01.2010 um 12:51 Uhr
ha! wunderbar, es klappt! =)

Aber hat jetzt nicht "Jeder" auch zugriff auf "D:\Temp"? das soll nicht und darf nicht, darf nur "D:\temp\BAK\" einsehbar sein.
Bitte warten ..
Mitglied: 48507
27.01.2010 um 12:55 Uhr
Zitat von Niranda:
ha! wunderbar, es klappt! =)

Aber hat jetzt nicht "Jeder" auch zugriff auf "D:\Temp"? das soll nicht und darf nicht, darf nur
"D:\temp\BAK\" einsehbar sein.

Deswegen immer den IUSR verwenden!
Bitte warten ..
Mitglied: Niranda
27.01.2010 um 12:59 Uhr
ja das ist klar, dann nehme ich halt den selben Text und ersetze "Jeder" durch "IUSER".
Werds gleich testen, glaub wir reden etwas aneinander vorbei ;)
Bitte warten ..
Mitglied: 48507
27.01.2010 um 13:06 Uhr
Kann sein. Du kannst natürlich den Zugriff einschränken, indem du nur den lokalen oder Domänen-Benutzern das Leserecht auf dieses Verzeichnis gewährst. Allerdings musst dann auch die Windows-Authentifizierung im IIS für dieses Verzeichnis einschalten. Siehe hier: http://support.microsoft.com/kb/324276/de
Bitte warten ..
Mitglied: Niranda
27.01.2010 um 14:07 Uhr
Also Zusammenfassung:
Wenn ich mit dem Script auf "D:\temp\BAK" zugreifen will, muss ich dem Ordner temp (D:\temp) die entsprechenden Rechte geben (IUSER muss Lesen+Ordnerinhalt anzeigen haben).
Das Script selbst kann dann aber nicht den Ordner temp auslesen, sprich nicht die Dateien anzeigen, die dort enthalten sind. Gibt man aber einen anderen Unterordner von temp an, so kann das script auch diese anderen unterordner auslesen. (der Vererbung sei dank).

Ich jedoch möchte das ganze nur auf den Unterordner BAK beschränken.
Muss ich dazu wirklich jedem anderen Ordner die rechte entziehen? das wäre ein heiden Aufwand =/

Danke bis hierhin spytnik
Nira
Bitte warten ..
Mitglied: 48507
27.01.2010 um 14:35 Uhr
Du kannst bei den anderen Unterordnern die Vererbung von "oben", also d:\temp, deaktivieren. Bei einem Temp-Verzeichnis macht es aber keinen Sinn, da dort ständig irgendwelcher Müll abgelegt wird. Wie wäre es mit d:\BAK?
Bitte warten ..
Mitglied: Niranda
27.01.2010 um 14:50 Uhr
Jap, hast du richtig erkannt und nein, die Verzeichnisstruktur muss so bleiben wie sie ist - leider.

Also als Notlösung gehts, aber eine richtige fällt mir jetzt nicht ein.
Man könnte höchstens ein Virtuelles Verzeichnis auf d:\temp\bak legen.
Hab das grad getestet, aber das geht auch wieder nicht - denke der brauch wieder etwas von oben.

Aber irgendwie entzieht sich das meiner Logik.
Der Ordner hat die Berechtigungen, sich preiszu geben. Wieso wird dann noch eine ebene höher verlangt?
Bitte warten ..
Mitglied: 48507
27.01.2010 um 16:05 Uhr
Versuche es über eine Freigabe. Also alle Berechtigungen rückgängig machen, d:\temp\bak als bak freigeben und die entsprechenden Berechtigungen einstellen: Auf der NTFS-Ebene dem IUSR für d:\temp\bak das Leserecht geben (ohne die Vererbung von oben abzuschalten) und auf der Freigabe-Ebene dasselbe (Jeder entfernen).

$pfad = "D:\\Temp\\BAK"; müssten dann halt $pfad = "\\\servername\\bak"; heißen.
Bitte warten ..
Mitglied: Niranda
27.01.2010 um 16:56 Uhr
nö, geht leider auch nicht
Bitte warten ..
Ähnliche Inhalte
Windows Server
gelöst Windows Server 2008 32 bit ISO für Volume License Keys (6)

Frage von seppo123 zum Thema Windows Server ...

Festplatten, SSD, Raid
gelöst Windows Server 2008 R2 Platte spiegeln - unterschiedliche Platten? (2)

Frage von imacer zum Thema Festplatten, SSD, Raid ...

Windows Server
gelöst MSSQL 2016 Express auf Windows Server 2008 R2 Standard? (2)

Frage von TiCar zum Thema Windows Server ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(6)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
gelöst Benutzer lässt sich nur an einem Clientcomputer anmelden (17)

Frage von Ammann zum Thema Windows Server ...

Vmware
gelöst Wie würdet Ihr eine ESXi Cluster Farm managen? (11)

Frage von AlFalcone zum Thema Vmware ...

Batch & Shell
gelöst Gruppenzugehörigkeit von AD Usern ermitteln - die Perfektion fehlt (11)

Frage von Stefan007 zum Thema Batch & Shell ...