hoe bestand in map plaatsen via copy?
Pagina: « vorige 1 2 3 volgende »
Het eerste is lokaal, en het tweede is een externe actie.
heb het al gevonden. bij het aanmaken van de directory moet ik de rechten aanpassen.
if ( !file_exists($dir) ) {
mkdir ($dir, 0744);
}
nu nog rechten aanpassen voor de bestanden in deze map
Toevoeging op 29/08/2023 14:58:41:
is nu allemaal gelukt. het hele probleem waren dus de rechten van de aangemaakte directory.
Bij een directory die ik vooraf via ftp zelf had aangemaakt stonden de rechten dus al gelijk goed.
Weer wat geleerd. topic mag als het aan mij ligt worden gesloten. Iedereen nog hartelijk dank voor de hulp en advies.
Gewijzigd op 29/08/2023 14:59:25 door Paul Weiss
755 is overigens voldoende voor de rechten. Misschien werd die wel toegekend als je de parameter voor de chmod-rechten in mkdir() achterwege liet. Elke server is immers anders geconfigureerd.
Gewijzigd op 29/08/2023 15:03:30 door - Ariën -
Ik kan nu in ieder geval de directory openen en lezen ook.
Prima! :-)
Die 0 geeft hier aan dat het om ocale getallen gaat. (een tal-stelsel dat maar tot 7 kan tellen, zoals het meer gebruikelijke decimale stelsel 9 als hoogste heeft.)
0777 is
7 * 8 * 8 * +
7 * 8 +
7
= 511
https://www.php.net/manual/en/function.chmod.php
en https://www.rapidtables.com/convert/number/octal-to-decimal.html
Dat verklaart meteen waarom 7 voor alle rechten staat: alle bitjes in de byte staan aan.
111 in Binair staat voor 7 (1*2*2 + 1*2 + 1)
Toevoeging op 29/08/2023 21:07:42:
maarhe, zet altijd die error reporting aan. Ook voor simpele scriptjes. Je wordt dan meteen om de oren geslagen met foutmeldingen en warnings, ipv je blindstaren op "waarom werkt het toch niet?"
Gewijzigd op 29/08/2023 22:40:14 door Paul Weiss
De notatie met voorloop-nul isprima. maar het neemt niet weg dat chmod (0)777 wel gevaarlijk is, en niet te adviseren is:
https://askubuntu.com/questions/20105/why-shouldnt-var-www-have-chmod-777
Dit artikel gaat overigens niet alleen over het pad naar /var/www/, maar in het algemeen over alles. Het feit dat Paul (0)777 gebruikte, en alsnog een 'permission denied' kreeg, lijkt mij een beveiligingsmechanisme. Misschien SElinux? En maar goed dat dit draait.
Toevoeging op 29/08/2023 22:43:36:
Paul Weiss op 29/08/2023 22:39:31:
He Ivo. Bedankt voor de input. Je hebt helemaal gelijk. error report altijd aanzetten. Moet een gewoonte worden. Loop inmiddels door dit alles wel tegen een ander probleem aan. enkele direcory's aangemaakt met 755 kan ik niet meer verwijderen, ook niet vanuit de control panel op de server. heel vreemd. als ik 0755 gebruik wel. wat is het verschil!!
Ik vermoed een ownership verhaal. Zie mijn vorige stukje script om te zien wie de owners zijn van een bestand, en mogelijk werkt een map ook.
Gewijzigd op 29/08/2023 22:45:54 door Paul Weiss
je kan die chmod dan toch aanpassen, zodat je ze kan verwijderen?
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?
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.
Dus kijk ook naar je owners.
Paul Weiss op 29/08/2023 23:07:31:
hij veranderd ze steeds terug in 340.
Als dat de rechten zijn dan kan alleen de root gebruiker ze aanpassen.
Dat is dus je hostingsbedrijf.
Toevoeging op 30/08/2023 10:37:55:
Bedankt. heb inmiddels al contact gehad met de provider om deze map te verwijderen. het is strato. echt een waardeloze partij ook.
Maar heb je al naar de ownership gekeken?
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.
Heb je al gecontroleerd WIE de owner is? Of blijft dat geheim? Het scriptje had ik een paar dagen geleden geplaatst.
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?