Door
Paul Weiss
op 28-08-2023 18:02
gewijzigd op 28-08-2023 18:04
3.224 views
Hoi. Ik ben bezig met een proefopzetje waarbij ik via een form een naam kan kiezen voor het aanmaken van een directory. Dat gedeelte gaat goed. Vervolgens wil ik echter met behulp van de copy functie hierin een bestand plaatsen met de naam index.php. Echter het wil niet lukken omdat de doelmap niet wordt herkend. als ik een echo uitvoer van $target dan wordt het pad wel goed weergegeven. ik heb totaal geen idee wat er fout gaat.
de rechten in filezilla kan ik aanpassen, maar worden op 1 op 1 of andere manier niet opgelagen. hij veranderd ze steeds terug in 340. zou ik dan via php de rechten op dit bestand moeten corrigeren of zo? waarom kan dat niet via filezilla?
Filezilla heeft gewoon ondersteuning voor chmod. maar als de rechten naar jouw idee niet lekker in elkaar steken, dan kan je beter je hostingprovider eens vragen.
In het verre verleden had ik ook troubles dat in PHP aangemaakte mappen vreemde rechten hadden, met apache of www als owner, en via het aanmaken vanuit FTP wel netjes mijn username had. Het resultaat was dat ik geregeld de boel door hun moest laten resetten. Later kon dit via een knopje in het hosting controle paneel DirectAdmin: 'Change ownership'.
Daar deed deze situatie mij aan denken.
als apache de map aanmaakt met alleen schrijf (en verwijder)rechten voor zichtzelf, dan kan jouw FTP user de map niet verwijderen.
En het is niet heel erg onlogisch natuurlijk dat jij op andermans map (van Apache) niet andere schrijfrechten mag zetten.
Dat zou het hele effect van users en userrechten onderuit halen.
Als Apache de map aanmaakt, dan kan Apache deze ook verwijderen. Als je de map aanmaakt en jezelf geen schrijfrechten geeft, dan kun je als het goed is (als eigenaar) nog steeds jezelf wél de juiste rechten geven.
Decimaal 777 zou in octaal 01411 zijn. Ik vermoed dat dan die 4 op de rechten van de owner komen (ipv de beoogde 07).
chown is een bestaande functie, maar omdat dat de bijl zet in het hele rechtensysteem van Linux mag je alleen met Root-rechten (sudo) op de server dit commando uitvoeren.
Maar het zou op te lossen moeten zijn met een klein PHP script dat de map eerst chmod naar rechten rwx voor de owner en dan de map verwijdert (indien leeggemaakt).
Hoe dan ook:
Het wordt op een shared hosting server lastig om zowel Apache als jouw FTP user voldoende rechten te geven op die dynamisch aangemaakte mappen, zonder alle users op de server toegang te geven.
WAAROM heb je het nodig?
Wat voor soort bestanden ga je erin zetten dat je deze ellende (en die eerder aangehaald) over je wilt afroepen?
Bedankt voor de input. hoe rechten verlenen en ownership krijgen etc. is voor mij nog vrij nieuw hoe dit allemaal in elkaar zit. appache ben ik ook nog niet echt bekend mee. Ben ook nog niet zo heel lang bezig met php uiteraard. Heb daar in het verleden eigenlijk ook nooit mee te naken gehad namelijk. Maar nu met aanmaken mappen etc. zal ik mij daar wel meer in gaan verdiepen de komende tijd. Maar welke chmod rechten zou ik dan via een php scriptje aan de directory / bestand moeten toekennen? En hoe verkrijg ik ownership precies?. Dacht dat alles gewoon met filezilla wel te verwijderen zou moeten zijn, aangezien ik toch owner ben (moet immers inloggen daarvoor). Maar misschien zie ik het allemaal te simpel.
ik heb het zelf gewoon aangemaakt via een php script. Was gewoon een test. maar het gebeurde doordat ik er geen voorloop 0 voor heb gezet dus 755. ip.v. 0755 Als ik nu inlog met filezilla ben ik toch degene met de hoogste rechten?