30. juli 2003 - 18:47Der er
11 kommentarer og 1 løsning
*nix filsystem - ejerskab/rettigheder/safe mode
Hej eksperter
Nu sidder jeg og udvikler på en Windows-boks og har derfor ikke den store erfaring med det filsystem man bruger på en *nix-boks.
Jeg har desværre fået lidt problemer med et system jeg har lavet som skal bruges på en *nix server og vil derfor gerne have lidt forklaringer!
Serveren kører i safe-mode, hvilket øjensynligt begrænser filhåndteringen i forbindelse med hvem/hvad der har rettigheder til at tilgå filer og biblioteker!
Jeg har problemer med at skrive til filer (via php-scripts), der er uploadet med ftp til serveren da uid ikke matcher. Kan jeg én gang for alle chown'e eller chmod'e disse filer og dermed undgå fremtidige problemer eller er der nogle mulige fælder/problemer jeg skal være opmærksom på?
Hvad med nye filer der oprettes af mine scripts - hvilke rettigheder skal der gives til bibliotekerne for at dette er muligt - jeg har ofte set løsningen med at chmod'e biblioteker til 777 - dvs. fulde rettigheder for alle - det er jeg ikke umiddelbart så begejstret for da biblioteket vel så er pivåbent for alle der har lyst til at lege mini-hackere?
Der er nogle få biblioteker, hvor mine scripts skal have alle rettigheder til at oprette, rette og slette filer - hvordan muliggør jeg dette samtidig med at sikkerheden bevares?
Håber på nogle gode forklaringer og forslag til problemerne.
første tal er "read", andet tal er "write", tredje tal er "execute"
tallene er binære og 4 = admin 2 = user 1 = guest
dvs 7 = admin, user og guest osv ;)
OBS: ikke helt sikker på rækkefølgen af 1,2,4 - muligt de er omvendt - men mener sådan, bruger ikke linux som standard ;)
---
nu ved jeg ikke hvad PHP kører som, hvis det er user er det jo bare at give dem 666. Ellers kan du jo bruge 776, hvor "guest" ikke kan køre programmer ;)
det kommer, det kommer ;) min nuværende computer vil altid være en windows - det er en spille computer. Når jeg får min nye arbejds-pc kommer der linux på den (programmere PHP, så Linux er bedre til det)
Jeg har stadig ikke helt forstået, hvordan det med ejerskab fungerer - jeg kan fint forstå rettigheder og havde også nogenolunde styr på dem i forvejen.
Det jeg så ikke er helt med på det med hvem der har ejerskabet og bibliotekerne! Hvis jeg har uploadet nogle filer med ftp er det så en "ftp-bruger" der ejer filerne og dermed vil man ikke kunne manipulere disse filer fra php fordi webserveren/php er en anden bruger! Eller er det muligt fra php at ændre ejerskabet over de uploadede filer og derefter være i stand til at manipulere dem fra php?
Hvad hvis jeg opretter en fil fra php og senere vil kunne redigere den (også fra php) - skal den så indstilles på en bestemt måde mht. rettigheder for senere at være "manipulerbar"? Hvad hvis jeg nu vil slette den fil senere via en ftp-forbindelse - er det så umuligt, fordi det er php der ejer filen!?
Hvad betyder SAFE-MODE indstillingen konkret for PHPs stringens mht. filbehandling - ville php ellers have været helt ligeglad med ejerskab og rettigheder eller hvad?
Grunden til at jeg spørger er selvfølgelig at jeg ikke vil give flere rettigheder til filer og mapper end højst nødvendigt - rettigheder skal være så stramme som det er muligt samtidig med at systemet selvfølgelig fungerer!
"Hvis jeg har uploadet nogle filer med ftp er det så en "ftp-bruger" der ejer filerne og dermed vil man ikke kunne manipulere disse filer fra php fordi webserveren/php er en anden bruger"
ja, apache eller hvilken webserver der nu bruges køres ofte som nobody.
"Eller er det muligt fra php at ændre ejerskabet over de uploadede filer og derefter være i stand til at manipulere dem fra php?"
Ja, med chown(). Men denne funktion er disabled i safe mode.
"Hvad hvis jeg opretter en fil fra php og senere vil kunne redigere den (også fra php) - skal den så indstilles på en bestemt måde mht. rettigheder for senere at være "manipulerbar"?"
Nej, filen ejes af "nobody" kan derfor redigeres af "nobody".
Hvis host'en har meget strikse safe mode indstillinger kan det nogle gange slet ikke lykkes at få scriptet op og køre..
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.