Rechten in Linux en PHP

Door Jurgen assaasas, 18 jaar geleden, 8.929x bekeken

Een korte tutorial over hoe rechten worden geset.

Gesponsorde koppelingen

Inhoudsopgave

  1. Inleiding
  2. chmod
  3. Rechten
  4. Nawoord
  5. Links

 

Er zijn 20 reacties op 'Rechten in linux en php'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Winston Smith
Winston Smith
18 jaar geleden
 
0 +1 -0 -1
Wellicht nog handig om op te merken dat je in PHP de rechten niet kan zetten door gebruik te maken van een string, zoals u+rwx waarmee je de eigenaar van een bestand lees-, schrijf- en uitvoerrechten geeft, zoals dat in Linux wel kan. Verder moet je in PHP altijd een prefix-0 meegeven omdat het een octaal getal is. 0755 in plaats van 755 dus.

Misschien is wat meer uitleg over users/groups en dergelijke ook op zijn plaats, omdat Windows dat niet echt kent. Als je Linux niet gewend bent, dan kan iets als "apache user" onduidelijk overkomen.
Jurgen assaasas
Jurgen assaasas
18 jaar geleden
 
0 +1 -0 -1
Ik zal eens een keer een volledige tutorial plaatsen over Linux en hoe dit in zijn werk gaat. Ik denk dat dit toch echt wel leesvoer is voor developers over hoe een server ingericht moet worden en waar je op moet letten.
Onbekend Onbekend
Onbekend Onbekend
18 jaar geleden
 
0 +1 -0 -1
Netjes.

Dit is een tutorial die toegevoegd kan worden aan de standaard-forum-antwoorden, namelijk samen met de PHP & MySQL beginners handleidingen en nog wat anderen!
- SanThe -
- SanThe -
18 jaar geleden
 
0 +1 -0 -1
Quote:
Deze worden in een reeks van 3 of 4 weergegeven bijvoorbeeld: 644 of 6440.


Je bedoelt 0644 i.p.v. 6440
En bij 0644 is de 0 het zogeheten sticky bit.
Je hebt dus ook 1644 en 2644......
Jurgen assaasas
Jurgen assaasas
18 jaar geleden
 
0 +1 -0 -1
Je hebt gelijk SanThe, ik zal het straks eventjes aanpassen.
Arend a
Arend a
18 jaar geleden
 
0 +1 -0 -1
Ik vind het een beetje een warrige volgorde en ik mis uitleg over users en groepen.

Ik kan me zo'n soort indeling voorstellen bij een ideale tutorial over permissies.

1. Users en groepen
In linux zijn er users en groepen, elk bestand is eigendom van een user, en eigendom van een groep. Users zijn weer onderdeel van groepen.

[uitleg: ls -al geeft aan welke users eigendom zijn van elke files; een user die een bestand maakt is de eigenaar; doorgaans is de webserver een andere user dan de ftp user; dit merk je als je dingen upload]


2. In linux bepaal je perdoel groep wie wat mag op een bestand
- Wat mag de eigenaar?
- Wat mag de groep?
- Wat mag de rest?

[In webomgeving doorgaans: eigenaar is alleen via ftp, groep wordt niet gebruikt, en rest zijn de mensen die via het web bekijken; apache = webserver valt onder rest]

3. Permissies
Er zijn 3 soorten permissies, read, write, execute. Dit is geen octaal systeem, maar een binair systeem met geschreven in decimale getallen.
Read: 001 = 1
Write: 010 = 2
Execute: 100 = 4

Uit deze 3 flags kan je een combinatie maken van rechten.

4. Het aanbrengen van permissies:
- via ftp
- via ssh
- via php

5. Veel voorkomende situaties:
- Upload directory
- Problemen met geuploadde bestanden via het web
- Gevaren van 777 op php bestanden en directories.
Jurgen assaasas
Jurgen assaasas
18 jaar geleden
 
0 +1 -0 -1
Arend je hebt gelijk, ik zal een aantal dingetjes aanpassen. M.b.t. je andere punten, deze horen er inderdaad in maar ik denk dat dit te veel info is voor de gemiddelde PHP'er hier.
Tikkes C
Tikkes C
18 jaar geleden
 
0 +1 -0 -1
je kan er altijd een pagina "Gevorderde uitleg" bijzetten ;) dit is echt handig ...
Arend a
Arend a
18 jaar geleden
 
0 +1 -0 -1
Te veel info bestaat volgens mij niet als je het op een goede manier neerzet. Permissies wordt meestal niet goed uitgelegd, en een hoop php bugs en veiligheidslekken komen hier uit voort (onwetendheid).
- SanThe -
- SanThe -
18 jaar geleden
 
0 +1 -0 -1
@Jurgen: Wanneer doe je de aanpassingen?
Jurgen assaasas
Jurgen assaasas
18 jaar geleden
 
0 +1 -0 -1
@SanThe, ik heb het stukje aangepast, wanneer ik tijd heb zal ik ook wat meer uitleg doen over users en groups (dus het gehele plaatje).
Marc
Marc
18 jaar geleden
 
0 +1 -0 -1
Kleine aanvulling op dit stukje: Er zijn genoeg hosters die gebruik maken van suPHP. Dan wordt PHP uitgevoerd onder de eigen user/group. Standaard suPHP weigert uit te voeren als een map of het script de rechten o+w heeft. Op zulke servers hoeft er helemaal niets aan rechten gewijzigd te worden.
- Jim  -
- Jim -
18 jaar geleden
 
0 +1 -0 -1
Wat ik er bij mis is het gebruik van uploaden van bestanden naar de webserver. Het is nl ook mogelijk als de rechten van de upload map niet goed ingesteld staan (777) mag iedere gebruiker schijven naar deze map. het zou dus kunnen dat een kwaadwillige scripter bestanden op jou webserver kan toevoegen of aanpassen. Staat opeens je website vol met p)%no foto's ;-)

Stel daarom je rechten voor iedereen/nobody altijd in op 0, en als je upload, eerst de rechten aanpassen, en na het uploaden herstellen.
Jurgen assaasas
Jurgen assaasas
18 jaar geleden
 
0 +1 -0 -1
@Jim Dat mis je niet aan de tutorial, dat staat er ook duidelijk in.

Het is vaak ontwetendheid dat mensen uploaden naar 777, bij 777 werkt het nl. altijd en dat vinden veel mensen wel goed, terwijl je een dikke beveiligingslek hebt.


18 jaar geleden
 
0 +1 -0 -1
Stel nu, je hebt een TMP directory (voor tijdelijke bestanden), waar PHP bestanden aan moet kunnen toevoegen / aanpassen / verwijderen. Wat voor Chmod geef je de map tmp dan?
Douwe
Douwe
18 jaar geleden
 
0 +1 -0 -1
Waarschijnlijk hetzelfde als wat Mathijs vraagt, maar: Wat kan ik het beste gebruiken voor een 'gewoon' afbeeldingen-upload-script, oftewel: PHP moet geposte bestanden kunnen uploaden, maar gebruikers via SSH moeten niks kunnen...
Jurgen assaasas
Jurgen assaasas
18 jaar geleden
 
0 +1 -0 -1
PHP upload zijn bestanden standaard in een tmp directory, deze verplaats je dan d.m.v. move_uploaded_file() naar een directory. Het beste is denk ik dan de map een 664 recht te geven en de apache/php gebruiker toevoegen aan de groep waar je lid van bent zo kan de webgebruiker (het systeem dus) wel dingen doen maar andere gebruikers niet.


18 jaar geleden
 
0 +1 -0 -1
En daarvoor heb ik zeker eerst SSH toegang nodig? En daarna, met welk commando kun je ook eens weer een gebruiker toevoegen aan een groep? Het is nl. nogal lang geleden dat ik met Linux heb gewerkt.
- SanThe -
- SanThe -
18 jaar geleden
 
0 +1 -0 -1
@Mathijs: usermod -G groupname username
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


18 jaar geleden
 
0 +1 -0 -1
Ah okee, dank :)

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Inleiding
  2. chmod
  3. Rechten
  4. Nawoord
  5. Links

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.