umask en de access control list (acl) voor het bepalen van de toegang op bestanden

Op deze pagina:

Bij het aanmaken van nieuwe bestanden en mappen worden de toegangsrechten bepaald door de ACL (Access Control List) en het umask, umask is een filter die de rechten toegekend op basis van de ACL (Access Control List) verder kan beperken.

De rechten die ingesteld staan op een map (ACL) bepalen de rechten die een nieuw aangemaakt bestand krijgt, evenwel beperkt door wat er in umask staat ingesteld.

Hoe hoger de getallen van het umask, hoe minder rechten er zijn op het nieuw aangemaakte bestand of de nieuw aangemaakte directory.

De rechten kunnen alleen worden beperkt door umask, ze kunnen niet worden uitgebreid door umask.

Het huidige umask tonen

Om te zien wat het huidige umask is:


$ umask
0002

Als je liever letters hebt ipv cijfers:


$ umask -S
u=rwx,g=rwx,o=rx

De codes van het umask

Het umask bestaat uit 4 cijfers of 3 lettergroepen.

De cijfers:

  • Het eerste cijfer: speciale permissies (setuid | setgid | sticky )
  • Het tweede cijfer: (u)ser; de eigenaar
  • Het derde cijfer: (g)roup; de groep
  • Het vierde cijfer: (o)thers; de overigen
  • Het eerste cijfer mag ook weggelaten worden, je krijgt dan een umask van 3 cijfers, overeenkomend met de laatste 3 cijfers van een viercijferige umask. Het eerste cijfer van een viercijferige umask wordt altijd genegeerd.

Welke rechten een umask cijfer beperkt:

  • 0: niets wordt beperkt
  • 1: geen uitvoerrechten
  • 2: geen schrijfrechten
  • 3: geen schrijfrechten en geen uitvoerrechten
  • 4: geen leesrechten
  • 5: geen leesrechten en geen uitvoerrechten
  • 6: geen leesrechten en geen schrijfrechten
  • 7: helemaal geen rechten

de letters:

  • u (user): de eigenaar
  • g (group): de groep
  • o (others): de overigen
  • a (all): iedereen (u,g en o)
  • r (read): het recht om te lezen
  • w (write): het recht om te schrijven
  • x (eXecute): het recht om uit te voeren

Het uitvoerrecht (eXecute) wordt nooit aan nieuw gemaakte bestanden toegekend.

Het umask instellen

Het umask wordt eerst ge-erfd van het systeem (/etc/login.defs), dan van een gebruikersconfiguratie (.bashrc). Als je het umask in een shell instelt, dan geldt dat in die shell-sessie en in de daar uit voortgesprongen sessies. Bij het afsluiten van de shell waar een umask is ingesteld, is deze umask weer terug naar de umask van daarvoor.

Het umask is in te stellen met cijfers of met letters:


umask 077

Dit staat alles toe aan de eigenaar, maar niets aan de groep en de overigen.

Bij het instellen met letters kan je een plus (+), een min (-) of een is gelijk (=) gebruiken:


umask u-w,g=r,o+r

Dit ontneemt de schrijfrechten aan de eigenaar, de andere rechten blijven onveranderd, geeft de groep alleen leesrechten en voegt leesrechten toe aan de overigen, de andere rechten blijven onveranderd voor de overigen.

Het gebruik van het is gelijk teken (=) zonder iets erachter ontneemt alle rechten:


umask a=

Bovenstaand voorbeeld ontneemt alle rechten aan iedereen bij het aanmaken van een nieuw bestand.

 

Verwante artikelen