mboost-dp1

Hjælp en Ubuntu-noob med apache og vsftp


Gå til bund
Gravatar #1 - nielsbuus
6. jan. 2012 16:12
Forord
Jeg har brugt den sidste uge på at lave mig en hjemmeserver der taler linux. Det er en udfordring for en windåse som mig. Eftersom jeg har lavet Java programmer selv, så tænkte jeg at FreeBSD ville være nemt at komme igang med.

Think again.

Så prøvede jeg PC-BSD og Fedora.

Der kom jeg også til korte.

Og nu har jeg kapituleret og installeret Ubuntu.

Her går det næsten godt.

Jeg har forstået at daemons er linux pendanten til tjenester og jeg har forstået at man kan installere programmer gennem både yum, apt, ubuntu software center og mange flere værktøjer og hvis ikke man er skarp på hvor tingene bliver lagt, så er man lost. Det er nemmelig meget tilfældigt. Og ikoner i programmenuen i dit skrivebordsmiljø? Ja, det er kun hvis du har været artig.

Problemstilling
Jeg har fået Apache til at køre, lavet mig et par virtuelle servere og fået det til at samarbejde med et af mine domæner hos UnoEuro. Jeg har også forsøgt mig med Samba og FTP. Begge dele med blandet succes.

Jeg googlede på ubuntu ftp server og fandt en instruks på Ubuntus hjemmeside om at bruge daemonen vsftp. Jeg fandt også ud af hvordan jeg konfigurede den fine konfigurationsfil som naturligvis ligger ene og alene i mappen /etc.

Så langt så godt.

Jeg har også fundet ud af at serveren bruger noget der hedder PAM som jeg bestemt ikke har gennemskuet, men som gør at de brugere jeg har oprettet i Ubuntu også bliver ftp-brugere.

Nu har jeg prøvet at logge på som mig selv fra FileZilla på min windows maskine og det er gået fint, jeg har fået uploadet nogle html-filer. Og jeg har sørme også moddet dem, så andre end mig selv kan læse dem.

På den baggrund burde det jo være en smal sag for min Apache server at vise indholdet, men tro om igen. Selv når directory listing er slået til (som det er som standard), så er filerne ingen steder at finde når jeg browser min server over web. Det er som om de er skjult.

Hvis jeg derimod logger et USB-stik i maskinen med noget indhold på og kopierer det ind i min www-mappe, så er der absolut ingen problemer. Det lister fint. Det samme gælder når jeg kopierer via SMB/Samba. Her går det også godt.

Jeg har højreklikket og tjekket indstillinger på mapper og filer og sørget for at rettighederne står rigtigt.

Men konsekvensen er den samme - når filen eller mappen kommer via vsftp, så er Apache httpd fuldkommen ignorant. Og jeg kan ikke forstå hvorfor.

Ejerskab og rettigheder er ens.
Kigger jeg i FileZillas 'tilladelse' så afspejler det også præcis det som står på de filer jeg selv kopierer over fra USB.

What gives?

Hvad er det jeg ikke har fattet?
Gravatar #2 - nielsbuus
6. jan. 2012 16:28
Update:

Jeg skrev at det også gik smertefrit via SMB. Det er ikke helt korrekt.

Når jeg kopierer enkeltstående filer, så går det godt, men rettighederne sættes forkert, men kan rettes via chmodding.

Når jeg opretter directories/mapper, så går det galt.

Og det gælder både SMB og FTP.
Gravatar #3 - nielsbuus
6. jan. 2012 17:25
Update 2:
Jeg har gjort mig nogle iagttelser som har lindret problemet.

1) Filer og mapper som oprettes af vsftp og samba bliver som standard kun udstyret med læse, skrive og kørselsret for ejeren. Det er ikke godt nok for Apache, her skal filer have læsningsret for offentligheden.

2) Mapper er tilsyneladende ikke nogen man bare læser - nej, man kører dem. I don't know why. Men de skal have offentling kørselsret og læsningsret - ellers ser Apache dem ikke.

3) Forviringen blev forstærket af at den hjemmeside jeg testede med havde en htaccess-fil liggende som pludselig blev levende da den landede på min Ubuntu server. Den fil er slettet nu. :|

Men det her afføder så et nyt spørgsmål:

Hvordan kan jeg styre hvilke rettigheder nye mapper og filer bliver tildelt pr. default af Samba og Vsftp.

Det er lidt tidskrævende at filer skal chmoddes til offentligt skue før at de bliver synlige på Apache.

Nogle bud?
Gravatar #4 - Mamad (moveax1ret)
6. jan. 2012 17:32
Det må du leve med- medmindre du får Apache til at køre som root.........eller du logger ind med den konto Apache kører som når du overfører filerne.

og altså....en chmod er da begrænset hvor bøvlet det kan være?
Gravatar #5 - Emil Melgaard
6. jan. 2012 18:15
MadiZone (3) skrev:
Hvordan kan jeg styre hvilke rettigheder nye mapper og filer bliver tildelt pr. default af Samba og Vsftp.


Du kan sætte setgid på mappen filerne bliver lagt i:

chmod g+s mappe


Så vil filer lagt i mappen automatisk arve grupperettigheder.
Gravatar #6 - nielsbuus
7. jan. 2012 20:41
Hej Emil.

Det lyder interessant, men præcis hvornår skal jeg gøre det og kan jeg gøre sådan at det sker automatisk for alt hvad ftp-brugeren laver? P.t. bruger vsftp de lokale brugere (dvs min konto) til autorisering, men det er jeg ikke interesseret i. Jeg vil gerne lave virtuelle brugere og sørge for at daemonens bruger bliver gjort til ejer på alt hvad de virtuelle brugere laver - og at de rigtige permissions sættes på, så Apache serveren kan se filerne.

Kan du forklare mig hvad g og s betyder og hvad setgid gør og hvilken relation den har til chmod?
Gravatar #7 - Spiderboy
8. jan. 2012 01:25
Nu sidder jeg ikke lige ved en Linux-maskine, men prøv "man chmod" og "man setgid".
Gravatar #8 - Emil Melgaard
8. jan. 2012 08:50
Du kan læse mere om setgid på mapper her:

http://en.wikipedia.org/wiki/Setgid#setuid_and_set...

MadiZone (6) skrev:
Kan du forklare mig hvad g og s betyder og hvad setgid gør og hvilken relation den har til chmod?


"s" er privilegiet og "g" betyder at du sætter det for gruppen.

Hvis du sætter det på ftp-brugerens root mappe vil det blive sat på alt hvad ftp-brugeren laver under den mappe (inkl. undermapper).

Hvis du så giver apache-brugeren gruppelæserettigheder (og gruppeexecuterettigheder) til ftp-brugerens root mappe, vil den kunne læse alt hvad der bliver lagt der.
Gravatar #9 - nielsbuus
9. jan. 2012 00:17
Hej Emil

Tak for forklaringen. Det giver mening :-)
Jeg vil prøve det af.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login