Avatar billede tipsen Nybegynder
30. juli 2003 - 18:47 Der 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.

Mvh

tipsen
Avatar billede fangel Nybegynder
30. juli 2003 - 18:54 #1
kender du systemet bag chmod?

her kommer det i hvert fald:

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 ;)


Morten
Avatar billede hmortensen Nybegynder
30. juli 2003 - 19:04 #2
CHMOD:
Første tal: Owner
Andet tal: Group
Tredje tal: Public

Read: 4
Write : 2
Execute: 1

Så en 664 burde spille, ligemeget hvilken bruger der er tildelt til webserveren.
Avatar billede fangel Nybegynder
30. juli 2003 - 19:06 #3
pis, tænkte nok der var noget jeg havde fået forkert - sådan kan det gå når man sjællent bruger sin linux box ;)
Avatar billede hmortensen Nybegynder
30. juli 2003 - 19:07 #4
det er det eneste rigtige at bruge ;)
Avatar billede fangel Nybegynder
30. juli 2003 - 19:18 #5
hindu => ja, men der er stadig et par programmer jeg skal finde en linux afløser til før jeg vil skifte helt! ;)
Avatar billede hmortensen Nybegynder
30. juli 2003 - 19:19 #6
så lav et sp her, så kan man måske hjælpe dig
Avatar billede fangel Nybegynder
30. juli 2003 - 19:45 #7
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)

Morten
Avatar billede tipsen Nybegynder
31. juli 2003 - 00:31 #8
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!
Avatar billede hmortensen Nybegynder
31. juli 2003 - 06:21 #9
Jeg tror at den her side er værd at læse lidt på:
http://www.zend.com/manual/features.safe-mode.php
Avatar billede andy Nybegynder
31. juli 2003 - 10:45 #10
"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..
Avatar billede tipsen Nybegynder
21. februar 2004 - 23:41 #11
hindu, dea og andy: tak for hjælpen og smid et svar!
Avatar billede tipsen Nybegynder
11. juli 2004 - 11:31 #12
lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester