home       inleiding       sysadmin       services       links       bash       werk       nothing      

permissions aanpassen

Er zijn twee manieren om permissions aan te passen. Ze maken allebei gebruik van het commando chmod.
 

  1. permissions relatief aanpassen
     
    Een veel gebruikte manier om scripts executable te maken is de volgende:
    chmod +x <bestand>
     
    voorbeeld:

    $ pico script
    $ ls -l script
    -rw-r--r-- 1 fien fien 11 2009-03-03 15:08 script
    $ chmod +x script
    $ ls -l script
    -rwxr-xr-x 1 fien fien 11 2009-03-03 15:08 script

     
    Maar die methode werkt bijvoorbeeld niet altijd met +w:

    $ ls -l testfile
    -rw-r--r-- 1 fien fien 23 2008-11-24 11:00 testfile
    $ chmod +w testfile
    $ ls -l testfile
    -rw-r--r-- 1 fien fien 23 2008-11-24 11:00 testfile

    Omdat de eigenaar reeds schrijfrechten heeft en de groep en iedereen niet, kan er geen globaal commando gegeven worden. (dat heeft te maken met umask -> zie systeembeheer) Als we gedetailleerder specificeren werkt het echter wel.
     
    Bekijk even de twee volgende voorbeelden:

    $ chmod g+w,o+w testfile
    $ ls -l testfile
    -rw-rw-rw- 1 fien fien 23 2008-11-24 11:00 testfile

    en:

    $ chmod u-w testfile
    $ ls -l testfile
    -r--rw-rw- 1 fien fien 23 2008-11-24 11:00 testfile

    De bewerking op de rechten van de eigenaar worden

    • voorafgegaan door de letter u (user)
    • gevolgd door de bewerking - (verwijderen) of + (toevoegen) en
    • afgesloten met de eigenschap (r w of x).
       

    Verschillende permissions worden gescheiden met de komma.
     
    Kunt u dit nog onthouden?
    De commando's worden nogal lang, waardoor de kans op tikfouten aanzienlijk toeneemt.
     

  2. permissions absoluut aanpassen
     
    Methode 1 (hierboven) werkt relatief. Je moet eerst weten hoe de permissions staan en dan nadenken wat er moet gewijzigd worden.

    De tweede methode, die hier uitgelegd wordt, werkt absoluut. Je hoeft niet te weten hoe de permissions nu staan (al weet je dat waarschijnlijk wel, want anders moest je ze niet aanpassen).

    We werken met een 3-cijferige code:

    Het eerste cijfer heeft betrekking op de eigenaar, het tweede cijfer op de groep en het derde cijfer geldt voor iedereen. We voeren dan een binaire combinatie uit van drie parameters om voor zowel user, group als others de rechten toe te kennen:

    • READ krijgt waarde 4
    • WRITE krijgt waarde 2
    • EXECUTE krijgt waarde 1

    Het resultaat ziet er dan zo uit:

    -

    r w x

    r - x

    - - -

    4+2+1

    4+0+1

    0+0+0

    7

    5

    0

     
    de combinatie -rwxr-x--- kun je als volgt instellen:

    $ chmod 750 testfile
    $ ls -l testfile
    -rwxr-x--- 1 fien fien 23 2008-11-24 11:00 testfile

    Dit lijkt in het begin een beetje ingewikkeld, maar reeds na een paar oefeningen wordt al duidelijk dat deze methode makkelijker en sneller is dan de vorige.

    Nog een paar voorbeelden:
    -rw------- = 600
    -rw-r--r-- = 644
    -rwxr-xr-x = 755