Permissies in praktijk

In deze sectie demonstreren we via een korte schermsessie hoe permissies worden gebruikt.

Om permissies te wijzigen, zullen we gebruik maken van de opdracht chmod.

cd; touch mijn-bestand

Er zijn hier een paar nieuwe trucs. Als eerste kun je ; gebruiken om twee opdrachten op één regel te plaatsen. Je kunt het bovenstaande typen als:
$ cd 
$ touch mijn-bestand
of als:
$ cd; touch mijn-bestand
en uiteindelijk gebeurt er hetzelfde.

Ter herinnering cd op zichzelf brengt je terug naar je home-directory. touch wordt normaal gesproken gebruikt om de wijzigingsdatum aan te passen van het bestand naar de huidige tijd, maar het heeft nog een andere interessante mogelijkheid: als het bestand niet bestaat maakt touch het bestand aan. Dus gaan we het gebruiken om een bestand aan te maken waar we mee kunnen oefenen. Gebruik ls -l als bevestiging dat het bestand werd aangemaakt, en om naar de permissies te kijken:
$ ls -l 
-rw-r--r-- 1 havoc havoc 0 Nov 18 22:04 mijn-bestand

Uiteraard zullen de tijd en gebruiker/groepsnaam anders zijn als je het uitprobeert. De grootte van het bestand is 0, aangezien touch een leeg bestand aanmaakt. -rw-r--r-- is de standaardwaarde van de permissie mode onder Debian.

chmod u+x mijn-bestand

Deze opdracht betekent het toevoegen van de (+) execute (x) permissies voor de gebruiker (u) die de eigenaar is van het bestand. Gebruik ls -l om het effect te bekijken.

chmod go-r mijn-bestand

Hier hebben we met (-) de read permissie (r) voor de groep (g) en voor alle anderen die eigenaar zijn van het bestand (others/alle anderen, o) weggehaald. Gebruik wederom ls -l om de effecten te verifiëren.

chmod ugo=rx mijn-bestand

Hier hebben we de permissies met (=) voor de gebruiker, groep en anderen op read en execute ingesteld. Hiermee worden de permissies exact zo ingesteld als wat je hebt opgegeven en worden alle andere permissies verwijderd. Dus allen zouden nu moeten zijn ingesteld op rx en van allen zou de permissie w nu moeten zijn verwijderd. Nu kan niemand meer naar het bestand schrijven.

chmod a-x mijn-bestand

a is een sneltoets voor ugo, of "allen". Dus alle x permissies zouden nu uit moeten zijn gezet.

rm mijn-bestand

We verwijderen het bestand, maar zonder write-permissies. rm zal vragen of je het zeker weet:
rm: remove `mijn-bestand', overriding mode 0444?
Je zou moeten reageren door het typen van y en het indrukken van de enter-toets. Dit is een kenmerk van rm en geen feit van permissies - permissies om een bestand te verwijderen komt van de directory-permissies, en je hebt write-permissie in de directory. rm probeert echter behulpzaam te zijn, uitmakend dat als je het bestand niet wilt wijzigen, (en write-permissie dus verwijderde), je het ook niet wilt verwijderen, dus vraagt het 't je.

Wat was dat gedoe met 0444 in de vraag van rm? De permissie-mode is een twaalf-cijferig binair nummer, zoals 000100100100. 0444 is dit binaire nummer voorgesteld als een octaal (grondtal 8) nummer, wat de conventionele manier is om een mode te schrijven. Dus je kunt chmod 444 mijn-bestand typen in plaats van chmod ugo=r mijn-bestand. Dit wordt volledig uitgelegd in de paragraaf Geavanceerde aspecten van bestandspermissies in Hoofdstuk 16.