Een map die op de verkeerde plaats is gemaakt of met te open rechten, leidt vaak later tot problemen. De mkdir opdracht is voldoende om te beginnen, maar vervangt niet de controle over de eigenaar, de groep en de permissies.
Voor een persoonlijke map, maak deze in je gebruikersmap aan. Voor een gedeelde map of een map die door een service wordt gebruikt, identificeer eerst het account dat erin moet schrijven. Een chmod 777 verbergt soms een echt probleem met de eigenaar en laat alle lokale accounts de inhoud wijzigen.
Maak de map op de juiste plaats aan
Vanaf de huidige map, maakt de volgende opdracht een enkele map aan:
mkdir sauvegardes
Met een absoluut pad weet je precies waar de map zal worden aangemaakt. Voeg -p toe als de bovenliggende mappen mogelijk ontbreken:
mkdir -p ~/projets/site-test/logs
Zonder -p stopt mkdir als ~/projets/site-test niet bestaat. De optie voorkomt ook een fout als de laatste map al aanwezig is. Het verandert geen fout pad in een goed pad: controleer het met pwd voordat je de opdracht uitvoert.
Om een ruimte voor te bereiden die aan jouw account moet toebehoren, blijf in je persoonlijke map. Je vermijdt sudo, dus een map die door root is aangemaakt en die jouw gebruiker niet meer kan vullen:
mkdir -p ~/archives/2026
stat -c '%A %U:%G %n' ~/archives ~/archives/2026
Kies passende rechten voor het gebruik
Een map vraagt om het recht x om te kunnen worden doorlopen. Op een map, staat r het opsommen van de namen toe en w laat het toevoegen, hernoemen of verwijderen van invoeren toe. De daadwerkelijk toegepaste rechten hangen ook af van jouw umask.
Voor een privé map, maak deze aan met een expliciete modus:
mkdir -m 700 ~/archives-privees
stat -c '%A %a %U:%G %n' ~/archives-privees
De modus 700 staat toegang toe voor de eigenaar en sluit de map voor andere gebruikers. Voor een map waar een werkgroep moet lezen en schrijven, kies een bekende groep en de modus 2770:
sudo install -d -o alice -g equipe-web -m 2770 /srv/equipe-web
stat -c '%A %a %U:%G %n' /srv/equipe-web
De 2 aan het begin activeert de setgid-bit van de map. Nieuwe bestanden en sub-mappen erven dan de groep equipe-web. Deze oplossing voorkomt dat schrijven voor alle serveraccounts wordt geopend. Controleer of de verwachte leden werkelijk in deze groep zitten met id naam_gebruiker.
mkdir -m 777 maakt een map aan die door iedereen kan worden gewijzigd, en de umask kan deze modus nog verder verlagen. Gebruik het niet om een Permission denied te corrigeren. Kijk in plaats daarvan naar het volledige pad, de eigenaar en de rechten van elke bovenliggende map:
namei -l /srv/equipe-web
ls -ld /srv /srv/equipe-web
id
Controleer voordat je de map aan een service toevertrouwt
Een service die onder www-data, postgres of een speciaal account draait, ziet mogelijk niet dezelfde rechten als jouw sessie. Controleer zijn gebruiker voordat je iets verandert. Voor systemd geeft deze opdracht de accounts die door de eenheid zijn geconfigureerd:
systemctl show mon-service
-p User -p Group -p DynamicUser
Maak daarna de map aan met de verwachte eigenaar en test een bestand vanuit dit account. Op een testmachine:
sudo install -d -o www-data -g www-data -m 750 /var/lib/mon-service
sudo -u www-data touch /var/lib/mon-service/test-ecriture
ls -l /var/lib/mon-service/test-ecriture
sudo rm /var/lib/mon-service/test-ecriture
Deze controle vertelt je of het service-account daadwerkelijk kan schrijven. Als het mislukt, voeg dan geen willekeurige permissies toe. Controleer eerst de eigenaar, de groep, de eventuele ACL’s met getfacl en de rechten van de bovenliggende mappen.
- Gebruik
mkdir -pvoor een pad waarvan de bovenliggende mappen kunnen ontbreken. - Gebruik
statofls -lddirect na het aanmaken. - Voor een gedeelde map, stel eigenaar, groep en modus in voordat je de service start.
- Beperk
chmodtot een gerichte correctie, nadat je het geblokkeerde account hebt geïdentificeerd.
De gids over setfacl onder Linux helpt wanneer één enkele gebruiker extra toegang nodig heeft. Als je permissies in een bestaande mapstructuur moet wijzigen, gebruik dan in plaats daarvan de procedure voor recursief chmod: het wijzigen van alle bestanden en mappen met dezelfde modus breekt gemakkelijk de uitvoeringsrechten van de mappen.
De man-pagina mkdir(1) geeft details over de opties, en mkdir(2) legt het effect van de umask en de groepsoverdracht uit. Houd deze twee punten in gedachten voordat je een map maakt die door een service wordt gebruikt.
