chmod: Ändra rättigheter i GNU/Linux
Vill du ändra rättigheter på filer i GNU/Linux? Jag lär dig hur! Denna guide fungerar för Ubuntu, Debian, OpenSuse, Red Hat, CentOS, Fedora, Slackware och även andra unixliknande system såsom FreeBSD och OpenBSD.
Börja med att öppna en terminal (eller logga in med SSH om det är på en annan maskin). Använd dig sedan av dessa kommandon för att hitta filen:
# Byt mapp: cd mapp/ # Lista innehållet i mappen: # (l-flaggan låter dig se vilka rättigheter filen har) ls -l
Vad rättigheterna betyder
När du hittat filen ser den kanske ut så här:
-rwxr-xr-- 1 emil users 299 6 dec 23.29 comparecode.sh
Det är den första kolumnen (de första 10 tecknen) vi är intresserade av. Detta visar nämligen vilka rättigheter filen har just nu. Det första tecknet visar vilken typ av fil det är. En vanlig fil har ett streck, en mapp har ett d för directory och så finns det ett par typer till.
De nästföljande tre tecknen anger rättigheterna för användaren som äger filen. I mitt exempel ovan är det jag, emil, som är ägare av filen (det är jag som skapat den). Rättigheterna är:
- r - read (rätt att läsa filen. r på en mapp betyder att man får lista innehållet i mappen)
- w - write (rätt att skriva till filen eller katalogen)
- x - execute (rätt att köra filen som ett datorprogram. x på en mapp betyder att man får gå in i mappen)
Jag har alltså fullständiga rättigheter till ovanstående fil.
Nästa tre tecken gäller för den grupp som äger filen. Alla användare är med i en eller flera grupper, och dessa rättigheter gäller för alla användare som är med i den grupp som äger filen. I mitt exempel så är det gruppen users som är ägare av filen. I exempel får alla som är med i users både läsa filen och köra den, men de får inte skriva till den.
De sista tre rättighetstecknen anger rättigheterna för alla som inte täcks av ovanstående rättigheter, alltså alla andra eller “other”. I exempel får andra användare bara läsa innehållet i filen, inte köra den.
Rättigheter med siffror
I Unixliknande system kan rättigheterna också anges med siffror. Vanliga rättigheter är 777, 775 och 666. Varje siffra gäller för en typ av användare. Den första gäller för ägaren av filen, den andra för gruppen och den tredje siffran gäller för alla andra.
De tre olika rättigheterna (r, w & x) har varsin siffra:
1. Kör (x)
2. Skriv (w)
4. Läs (r)
Addera dessa för att få fram rättighetssiffran (rx = 4 + 1 = 5). Sju betyder fullständiga rättigheter.
Ändra rättigheter med chmod
För att ändra rättigheter använder du dig av programmet chmod på detta sätt:
chmod rättigheter filnamn
Rättigheterna kan anges på två former. Antingen beräknar du siffrorna enligt ovan (chmod 666 filnamn) eller så använder du denna syntax för chmod:
chmod u+rwx filnamn
“Vad betyder detta?”, frågar du dig kanske. Jo, jag säger att användaren (u) ska FÅ (+) läsa-skriva-köra (rwx). Här är några fler exempel:
# Användaren och gruppen FÅR INTE (-) skriva: chmod ug-w filnamn # Alla får fullständiga rättigheter (motsvarande 777): chmod ugo+rwx filnamn # Kortare version av 777: chmod +rwx filnamn # Andra (other) får köra filen som ett program: chmod o+x filnamn # Andra (other) får inte köra filen: chmod o-x filnamn # Kombinera flera rättigheter: chmod o+wx,g-r filnamn
Svårare än så är det inte!
Om du försöker ändra rättigheter på ett webbhotell, till exempel för Joomla, Magento, Drupal eller någon annan webbapplikation, då är du förmodligen mest intresserad av “other”-rättigheter. Du vill låta webbservern skriva sin config till en fil eller mapp och webbservern (Apache) tillhör oftast användarna bland “other”. I de flesta FTP-program kan du också ändra filrättigheterna och då behöver du oftast klicka i några rutor.
Är det något du tycker är oklart?

Kl 08:23, 12 december 2008
Äntligen har du förstått :-))
Kl 21:25, 4 juni 2009
Tack så mycket, dethär var till stor hjälp
Kl 15:43, 14 juni 2009
Tack så grymt mkt!