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.

Nu oefenen: vragen over Bestandsrechten (permissies)

In de homedirectory toont „ls” alleen notes.txt, terwijl „ls -a” „.”, „..”, „.bashrc” en „notes.txt” toont. Welke verklaring van dit resultaat is juist?

  1. A„.” staat voor de huidige directory en „..” voor de bovenliggende directory; .bashrc, waarvan de naam met „.” begint, is een verborgen bestand en wordt zonder -a niet getoond
  2. B„.” staat voor de huidige directory en „..” voor de bovenliggende directory; .bashrc is een bestand waarin niet geschreven mag worden en wordt zonder -a niet getoond
  3. C„.” staat voor de rootdirectory en „..” voor de homedirectory; .bashrc, waarvan de naam met „.” begint, is een verborgen bestand en wordt zonder -a niet getoond
Antwoord en toelichting tonen

Antwoord: A. „.” staat voor de huidige directory en „..” voor de bovenliggende directory; .bashrc, waarvan de naam met „.” begint, is een verborgen bestand en wordt zonder -a niet getoond

Elke directory bevat een item „.” voor de directory zelf en „..” voor de bovenliggende directory. Bestanden en directory's waarvan de naam met „.” begint, worden als verborgen behandeld: ls toont ze zonder opties niet, en met -a (all) wel. Configuratiebestanden van shells en tools, zoals .bashrc, krijgen vaak een verborgen naam, zodat ze gewone overzichten niet onoverzichtelijk maken. Of een bestand wordt getoond, hangt alleen af van de naam en heeft niets te maken met de bestandsrechten.

Welke beschrijving van het commando sudo in Linux is juist?

  1. AIedereen die het wachtwoord van root kent, kan een commando met sudo ervoor uitvoeren, en nergens wordt vastgelegd wie het heeft uitgevoerd
  2. BEen commando met sudo ervoor krijgt van de kernel een hogere prioriteit dan andere processen en wordt sneller uitgevoerd omdat het de CPU als eerste mag gebruiken
  3. CEen gebruiker die in sudoers is toegestaan, voert ermee een commando uit met de rechten van een andere gebruiker (standaard root), en voert standaard zijn eigen wachtwoord in
Antwoord en toelichting tonen

Antwoord: C. Een gebruiker die in sudoers is toegestaan, voert ermee een commando uit met de rechten van een andere gebruiker (standaard root), en voert standaard zijn eigen wachtwoord in

root is het beheerdersaccount (superuser) dat alles op het systeem kan bedienen, in principe zonder de beperkingen van de bestandsrechten. sudo is een mechanisme waarmee alleen gebruikers die in /etc/sudoers of iets dergelijks zijn toegestaan, afzonderlijke commando's met de rechten van root of een andere gebruiker kunnen uitvoeren; standaard bevestigt het met het eigen wachtwoord van de gebruiker en legt het de uitgevoerde commando's vast. Vergeleken met het delen van het rootwachtwoord en altijd als root inloggen, is zo beter na te gaan wie wat heeft gedaan, en worden sterke rechten alleen gebruikt wanneer dat nodig is. Rechten tot het noodzakelijke minimum beperken berust op het principe van minimale rechten in de beveiliging.

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.

“Bestandsrechten (permissies)” in de toelichting

Vragen met “Bestandsrechten (permissies)” (2)

  1. In de homedirectory toont „ls” alleen notes.txt, terwijl „ls -a” „.”, „..”, „.bashrc” en „notes.txt” toont. Welke verklaring van dit resultaat is juist?
  2. Welke beschrijving van het commando sudo in Linux is juist?

Verwante termen

Shell Superuser Principe van minimale rechten (least privilege) cron Git grep Harde link (hard link) inode Omgevingsvariabele (environment variable) Omleiding van invoer en uitvoer (I/O redirection)

Naar de woordenlijst