PHP en rechten ?
Apache rechten voor de website? Ik dacht dat ik het wel snapte na lezen.
Bij rechten heb je : eigenaar, groep en publiek. Kan op directory en file niveau.
Verdere rechten zijn me wel duidelijk : read, write en execute. Waarbij voor directory execute de bestandslijst weergeeft.
Mijn beeld er van is :
Groep is niet van belang dacht ik. Publiek is wel van belang voor website, want dat bepaalt wat anonieme bezoekers website mogen (klopt dit?)
Eigenaar is van belang voor wat je aan de FTP-kant mag doen met het bestand.
Onder het mom voor veiligheid probeer ik nu zoveel mogelijk rechten weg te halen. Daarbij stuit ik op iets raars :
Een eigen gemaakte directory met naam mydent:
rechten gezet op de directory mydent :
File op 400, dus -r-- --- ---
Directory op 100, dus d—x --- ---
in deze directory staan index.html en index.php.
En bij mijn test werkt index.html (pagina met tekstregel), en bij mijn test werkt index.php (script met 1 regel met: echo "tekst" ) ook.
Is dat normaal met zo weinig rechten klopt dit wel?
En kan ik mijn hele website draaien met zo weinig rechten?
Wat ik dus telkens lees op internet is dat juist door leesrechten aan publiek te geven je pas een website zichtbaar kunt maken . Dus ik volg het niet meer.
Het geeft mij het idee dat er iets niet goed gaat.
Hoe zit dat nu feitelijk met die rechten en functionaliteit. Ook in combinatie met PHP?
Ik weet het voor apache: een bestand met recht xx4 is voor iedereen te lezen dus ook voor de server; een bestand met recht x4x is alleen voor de server te lezen als die in dezelfde groep zit als het bestand (te zien met ls -l, te wijzigen met chown -- dat zul je dan wel hebben uitgevonden); een bestand met recht 4xx is alleen voor de server te lezen als die eigenaar is.
Heb jij het ook over apache?
Ik heb geen eigen server. En werk met een hostig pakket bij yourhosting.
Quote:
Publiek is wel van belang voor website, want dat bepaalt wat anonieme bezoekers website mogen (klopt dit?)
Nee, dat klopt niet. Voor bestandsrechten zijn alle bezoekers gelijk; de bestanden komen namelijk via de servertoepassing naar de browser.
Wat voor beveiliging van belang is, is dat bezoekers (dus de server) alleen schrijfrecht heeft in de mappen waar dat relevant is, en afdaalrecht in directories waar de website wat te zoeken heeft.
'world readable' is alleen van belang wanneer je bestanden niet in een groep kunt/mag zetten waar ook de server in zit.
Gewijzigd op 03/12/2010 15:11:59 door Bas Cost Budde
Eigenaar is de FTP user waarmee ik inlog, De groep heeft dezelfde naam als de FTP-user.
(Voor de veiligheid geef ik die naam even niet.)
Misschien kun je drie testbestanden maken in een map (onder document root, dus bereikbaar voor de browser), en de rechten instellen op 400, 040 en 004; dan kijken welke je kunt zien in de browser.
mijnhtml400.html met recht 400, deze kan ik zien
mijnhtml040.html met recht 040 en mijnhtml004.html met recht 004 geven beiden : Toegang verboden! U hebt niet de toestemming om toegang te krijgen tot de gevraagde map. Die is ofwel beveiligd tegen lezen of onleesbaar door de server.
Sja. Misschien zijn de getallen achterstevoren gezet. Je doet het via de ftp-filemanager toch? Ik heb geen hosting bij yourhosting dus ik kan niet makkelijk meekijken, misschien kun je iets vinden over wat eigenaar is, wat groep, en wat wereld, in die rechtenweergave.
Ben je nu uiteindelijk geholpen in de zin dat je vertrouwt op je begrip van rechten?
Maar goed, zo'n antwoord kan ik ook niets mee.
Ik blijf gewoon het gevoel houden dat er iets raar is of dat ik iets niet snap.
Ik zit nu op mijn werk, heb prive ook wel met filezilla gewerkt bij ander hostingprovider. En dan leek alles wel normaal.
Gewijzigd op 03/12/2010 16:03:02 door Ellen P
Wat mij betreft is er iets raars, en snap je de materie heel goed.
Wat nu de gevolgen zijn snap ik dan niet echt. Komt vermoedelijk doordat ik feitelijk linux en apache niet ken. En alleen wat over de rechten via lezen op Internet wat wijzer ben geworden.
Maar een Joomla installatie draait er gewoon op bij Yourhosting. Dan zou toch daarvoor ook alle rechten anders moeten? Of niet?? Gaat dus onderwijl mijn begrip te boven.
En ook wat ik nu moet doen met de rechten van eventuele PHP programmatjes die ik wil gaan schrijven. Bas heb je enig inzicht in de consequenties?
Gewijzigd op 03/12/2010 16:37:52 door Ellen P
Een directory met rechten 100 geeft toegang tot die directory, listing en dergelijke. Je mag er dan nog niets lezen of wegschrijven. Om toegang te hebben EN te mogen lezen dient er aan rechten 500 te zijn. Leesrecht + accessrecht.
Als ik het nu goed begrijp zijn om de website te laten werken alleen de rechten van de eigenaar van belang. Blijkbaar doen groep en publiek niet mee, en heeft het geen zin daar rechten aan te geven. Wanneer ik dit niet goed begrepen heb, reageer dan svp.
Jawel, group en public zijn wel van belang. Allereerst: het gaat niet om publiek cq kijkers naar de website maar het betreft rechten op de server zelf. Je hebt daar te maken met 2 user: apache en jijzelf, jouw eigen (ftp, sftp, filezilla) inlog-user. Wanneer je bestanden upload dan zijn ze van jouw, jij bent owner. De bestanden moeten tijdens http processing gelezen worden door het httpd proces en dat runt vrijwel altijd onder user apache. Deze user moet dus toegang hebben tot de bestanden. Afhankelijk van hoe de hoster de groups ingedeeld heeft (je zit wel of iet met apache in een group) moet je rechten aan group geven en/of ook aan public.
Je schrijft : Afhankelijk van hoe de hoster de groups ingedeeld heeft (je zit wel of iet met apache in een group) moet je rechten aan group geven en/of ook aan public.
Maar wanneer mij php programma's werken bij rechten op directory 100 en lezen 500 dan staan de laatste nullen toch voor group en public? En omdat die op 0 staan, hebben die geen rechten. En mijn mijn php-script werkt wel, terwijl daar nullen staan? Daaruit leid ik dan af dat group en public er niet toe doen hier. Waar gaat mijn gedachtegang dan verkeerd?
Normaal staan de rechten van de directories op 755 en van de bestanden op 644.
Toevoeging op 10/12/2010 13:16:15:
De hoster lijkt apache/php zo te hebben ingesteld dat die draait onder het account waarmee de klant ook FTP-t. De webserver is daarmee owner van de bestanden.