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, 8675 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: sputnik
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: sputnik
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: sputnik
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: sputnik
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: sputnik
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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

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