onsdag 9 februari 2011

Unix, rättigheter på kataloger och filer

Här följer en text som förklarar filrättigheter i Unix (eller Linux). Om du undrar vad skillnaden är mellan 644 och 755 så har du hamnat rätt.

Filrättigheter
När det gäller filrättigheter talar vi ofta i termer av 755 eller 644. En fil, eller katalog, har alltid en ägare och en grupp. Den första siffran anger vad objektets ägare får göra, den andra siffran anger vad medlemmar av gruppen får göra och den tredje siffran anger vad alla andra får göra med objektet.

Siffrorna som används för att representera filrättigheterna, 755, 644 osv, är addition av r (4), w (2) och x (1). r står för read (läsbar), w för write (skrivbar) och x för executable (körbar).

755 (rwxr-xr-x) betyder att användaren får läsa, skriva och exekvera medans gruppen och alla andra får läsa och exekvera. Detta används ofta på kataloger eller körbara filer. Det är viktigt att en katalog är "körbar", annars kan användaren inte ställa sig i den med "cd".

644 (rw-r--r--) betyder att användaren får läsa och skriva medans gruppen och alla andra endast får läsa. Detta används på vanliga filer, kod eller dokument.

Detta är de två vanligaste sätten att definera rättigheter på en fil eller katalog i Unix. Vill du ha en mer utförlig förklaring, och få koll på specialfall, då rekommenderas att läsa manualsidan för kommandot chmod (change mod), det är kommandot som ändrar fil-rättigheter i ett Unix-system.
http://www.freebsd.org/cgi/man.cgi?chmod
Default-rättigheter

När du skapar en ny fil eller katalog så ges den default-rättigheter. Dina default-rättigheter styrs av din startupfil och kommandot umask. Läs följande artikel om du vill ändra dina default-rättigheter.
http://db-o-webb.blogspot.com/2009/09/sshstudentbthse-editera-initfilen-vid.html
Rättigheter och webbplatser

När vi jobbar med webbplatser så är det viktigt att webbservern kan läsa våra filer och kataloger. Därför använder vi 755 på kataloger och 644 på filer. Det skadar inte om du använder 755 på dina filer, det fungerar, men är inte "semantiskt" korrekt.

Om du har fel rättigheter, kan det betyda att webbservern ej kan läsa dina filer eller kataloger, då kan du få följande fel.
Fel rättigheter på fil (se skillnaden mellan php- och html-filer):
http://dbwebb.se/examples/forbidden.php
http://dbwebb.se/examples/forbidden.html

Fel rättigheter på katalog:
http://dbwebb.se/examples/forbidden

5 kommentarer:

  1. Är det inte lättare att lära ut symboler än oktala siffror?

    Såsom
    ugo+rwx
    ugo-rwx
    och
    ugo=rwx

    Som
    u=rwx,go-w alla rättigheter till ägaren, resten får inte skriva

    u+rw,go-w,g+r läs och skrivrättigheter till ägaren, tar bort skrivrättigherer för grupp och övriga samt läger till läsrättighet för gruppen

    go-w ta bort skrivrättigheter på grupp och övriga, alla andra rättigheter oförändrade

    ugo=r sätter endast läsrättigheter för alla

    Jag tycker i vart fall att det är enklare än att försöka översätta till oktala siffror. Dessutom, det går att ändra bara en del av rättigheterna utan att ändra de andra. Vilket inte fungera med oktala rättigheter.

    SvaraRadera
  2. Känner igen detta från ett tidigare liv...MEN finns motsvarande i Windows eller är det "säkerhet" etc lite diffust som skall uppdateras....

    SvaraRadera
  3. Windows har sitt eget sätt att hantera detta, "same same but different".

    SvaraRadera
  4. Joo gissningen är att det är lika MEN hur kommer man åt att sätta rättigheterna....ska man skicka filerna till databasen---sedan ändra---och sedan tillbaka eller---? för rättigheterna ändras väl inte vid flytten?

    SvaraRadera
  5. Trubbel

    Försöker föra över filer men dom verkar inte hamna på servern...jaa mer än namnet och katalogerna bjvi13

    SvaraRadera