Wat is Bestandsrechten (permissies)?
Op Linux en vergelijkbare systemen de instelling per bestand en directory die bepaalt of lezen (r), schrijven (w) en uitvoeren (x) zijn toegestaan voor de eigenaar (user), de groep (group) en de overigen (others). ls -l toont ze als rwxr-xr--, en chmod drukt ze ook octaal uit, zoals 754 (de som van r = 4, w = 2, x = 1). De rechten van nieuw gemaakte bestanden worden bepaald door de umask. root (de superuser) kan bestanden meestal lezen en beschrijven zonder deze beperkingen.
Japanse benaming: パーミッション
“Bestandsrechten (permissies)” komt voor in 2 oefenvragen uit 1 onderwerpen, bijv. Basis van Linux en de opdrachtregel.
Vakgebied: Basis van Linux en de opdrachtregel
De notatie lezen
Van de eerste 10 tekens van ls -l is het eerste het bestandstype (- voor een gewoon bestand, d voor een directory, l voor een symbolische link), en is elke volgende groep van drie het recht van de eigenaar, de groep en de overigen. Octaal is elk cijfer de som van r = 4, w = 2 en x = 1, dus rwxr-xr-- is 754 en rw-r--r-- is 644. Behalve met getallen, zoals in chmod 754 file, kan met symbolen een deel worden gewijzigd, zoals in chmod g+w file of chmod o-r file.
Rechten op directory's
Bij een directory is r het recht om de lijst met namen erin te lezen, w het recht om er bestanden in aan te maken en te verwijderen, en x het recht om erin te gaan en bestanden via hun naam te bereiken. Of een bestand kan worden verwijderd, wordt dus niet door het bestand zelf bepaald, maar door de w en x van de directory. Een directory waarin iedereen kan schrijven, zoals /tmp, krijgt de sticky bit (t), zodat gebruikers geen bestanden van anderen kunnen verwijderen.
Speciale bits en de umask
Er is setuid, dat een programma met de rechten van de eigenaar laat draaien (s op de x-positie van de eigenaar), setgid, dat het met de rechten van de groep laat draaien, en de hierboven genoemde sticky bit; octaal zijn dat de posities van 4000, 2000 en 1000. Nieuwe bestanden worden gemaakt vanuit 666 en directory's vanuit 777, met de bits van de umask verwijderd, dus met umask 022 worden bestanden 644 en directory's 755.
Veelgestelde vragen
Lost chmod 777 het probleem op?
„Permission denied” verdwijnt misschien, maar daarna kan iedereen het bestand wijzigen of uitvoeren, en kunnen andere gebruikers of programma's de inhoud veranderen. De basisaanpak is eerst na te gaan welke gebruikers welke handelingen moeten kunnen uitvoeren, de eigenaar en de groep met chown en chgrp daarop af te stemmen, en alleen de benodigde rechten toe te kennen.
Hoe laat ik op een gedeelde server alleen mijn teamleden bestanden lezen?
Maak een groep voor het team, voeg de leden toe, stel de groep van de bestanden en directory's in op die groep, en geef de groep r (r en x voor directory's) en de overigen niets (bijvoorbeeld 640 voor bestanden en 750 voor directory's). Om de rechten per persoon fijner in te stellen, kunnen ook ACL's (setfacl, getfacl) worden gebruikt.