Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 30-11 20:54
Ik probeer een bestand te openen met PHP binnen een ander netwerk maar krijg de foutmelding dat er niet voldoende permissies zijn:
code:
1
Warning: fopen(//Nas/Media/) [function.fopen]: failed to open stream: Permission denied in index.php on line 2


Nu heb ik Apache geïnstalleerd in Windows 7 en het lijkt erop dat de gebruikersaccount administrator rechten heeft maar begin hier zelf aan te twijfelen.

Gebruikersaccount waarbij Apache zich aanmeldt is 'Server' die lid is van de Administrators groep.

Heeft iemand enig idee waar dit aan kan liggen? :)

  • Outerspace
  • Registratie: Februari 2002
  • Laatst online: 10:45

Outerspace

Moderator General Chat / Wonen & Mobiliteit

AFX Ghey Edition by HlpDsK

Als je vanuit je OS gaat browsen naar die file, kan je hem dan wel openen? Zo nee, dan is er iets mis met de autorisaties van het account waar je mee werkt.

Zoekt nieuwe collega's (jr/sr engineers, servicedeskmedewerkers of managers in de Randstad)


  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 30-11 20:54
Vanuit het OS kan ik prima de bestanden bereiken

  • TheMazzter
  • Registratie: Oktober 2006
  • Laatst online: 21-11 13:46
Je probeert Apache op een Win7 pc een bestand op een NAS te laten openen? Weet je dan zeker dat de gebruiker 'Server' genoeg rechten op die NAS heeft?

  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 30-11 20:54
De Nas vereist een login met de gebruikersnaam 'Kris' en een wachtwoord. Dus dat is anders dan de gebruiker Server van Windows 7 zelf.

  • TheMazzter
  • Registratie: Oktober 2006
  • Laatst online: 21-11 13:46
Maar logt apache daar dan ook mee in op de NAS? Ik kan me voorstellen dat je Win7 pc automatisch inlogt op de NAS met 'kris' als je inlogt onder je persoonlijke account. Maar als apache onder een andere gebruiker draait, dan zal die daar natuurlijk geen gebruik van kunnen maken.

  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 30-11 20:54
Apache draait onder de gebruiker 'Server'. Wanneer ik inlog met de gebruiker Server dan kan ik bij de Nas komen met al haar bestanden.

  • TheMazzter
  • Registratie: Oktober 2006
  • Laatst online: 21-11 13:46
Tja, dan zou het nog kunnen zijn dat er bepaalde rechten er voor zorgen dat apache het bestand niet kan openen. Ik had het laatst met een include(), chmod 644 verhielp dat, maar dat was op een LAMP server.

Wat ik nog zou proberen als ik jou was (als je het niet al gedaan hebt) is om het te lezen bestand op je Win7 pc te zetten en het dan nog eens proberen.

  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 30-11 20:54
Dat is geen optie aangezien het niet om 1 enkel bestand gaat maar bestanden die bij elkaar 2TB groot zijn (vandaar dat ze op een Nas staan)

Nu heb ik dit gevonden:
PHP:
1
2
3
4
5
6
7
8
9
10
11
// Define the parameters for the shell command
$location = "\\servername\sharename";
$user = "USERNAME";
$pass = "PASSWORD";
$letter = "Z";

// Map the drive
system("net use ".$letter.": \"".$location."\" ".$pass." /user:".$user." /persistent:no>nul 2>&1");

// Open the directory
$dir = opendir($letter.":/an/example/path")


http://php.net/manual/en/function.opendir.php

Echter krijg ik hiermee de melding:
Warning: opendir(Z:/Documenten) [function.opendir]: failed to open dir: No such file or directory in index.php on line 12

  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 30-11 20:54
Ik heb inmiddels een folder aangemaakt op de Nas en daarin een tekstbestand geplaatst. De folder heb ik public gemaakt en PHP kan nu de inhoud van het tekstbestand uitlezen.

Het ligt dus puur aan het feit dat PHP niet kan inloggen met de juiste gegevens. Heeft iemand enig idee hoe ik kan inloggen op de Nas (linux, samba) door middel van PHP om alsnog bij de bestanden te komen? :)

  • TheMazzter
  • Registratie: Oktober 2006
  • Laatst online: 21-11 13:46
Je code hierboven kan werken, maar het gaat fout als je $location te veel \'s bevat. Zoals het er nu staat zou de command dit worden:

net use Z: \"\\servername\sharename\" PASSWORD /user:USERNAME /persistent:no>nul 2>&1

hierin zitten een paar \'s te veel. En gaat het wel goed met die quote's?

Vervang anders regel 8 (9) eens door:

PHP:
1
system("net use ".$letter.": ".$location." ".$pass." /user:".$user." /persistent:no>nul 2>&1");


(Bovendien is het natuurlijk niet heel leuk om je pw plain in een php te hebben.).

  • DiGyPh0
  • Registratie: Juni 2001
  • Laatst online: 29-11 13:54
PHP logt niet in op je NAS, maar dat doet Apache.
De Apache-service moet je niet onder de gebruiker "Server" draaien, maar onder een gebruiker met rechten op de share op je NAS (in dit geval dus Kris).

Of dit beveiliging-technisch verstandig is is een andere vraag.

π-♭


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Aangezien je toch Windows gebruikt: pak Sysinternals ProcessMonitor er eens bij en ga daarmee troubleshooten om te zien met welke credentials je setup die share probeert te benaderen?

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

administrator = local administrator natuurlijk

Start je webserver met een apart account die. dan geef je die weer rechten op de nas

Iperf


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Volgens mij heeft ie dat ook allang ingesteld...
ZeroXT schreef op vrijdag 18 november 2011 @ 13:07:
Apache draait onder de gebruiker 'Server'. Wanneer ik inlog met de gebruiker Server dan kan ik bij de Nas komen met al haar bestanden.

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

alt-92 schreef op zondag 20 november 2011 @ 12:18:
Volgens mij heeft ie dat ook allang ingesteld...

[...]
Uit de ts
Gebruikersaccount waarbij Apache zich aanmeldt is 'Server' die lid is van de Administrators groep.
dan is het nog een beetje afhankelijk van het os maybe maar een local admin hoeft geen domain admin te zijn, nou het behoeft een beetje duidelijkheid. dunkt me dat ik wel in de buurt zit anders had het wel gemogen

Iperf

Pagina: 1