Sådan indstilles filsystem (disk) kvoter på Ubuntu


Filsystemkvote er en standardindbygget funktion, der findes i Linux Kernel. Kvoter bestemmer mængden af plads, en fil skal have til at understøtte brugeraktiviteter. Diskkvoterne begrænser også antallet af filer, som en bruger kan oprette på systemet.

Filsystemer, der understøtter kvotesystemet, inkluderer xfs, ext2, ext4 og ext3 for at nævne nogle få. Tildelingen af kvoter er specifik for filsystemet og for hver bruger. Denne artikel indeholder alt hvad du behøver at vide om at arbejde med kvotefilsystemet i et flerbruger Ubuntu 18.04-miljø.

Antagelsen her er, at du bruger Ubuntu 18.04-system med en bruger (tecmint) givet sudo-rettigheder. Idéerne, der deles her, kan arbejde på alle Linux Distros, så længe du bruger den rigtige implementeringsteknik.

Trin 1: Installation af kvote i Ubuntu

For at kvoterne skal være klar og anvendelige, skal du installere kommandolinjeværktøjet kvote ved hjælp af kommandoen apt, men inden det skal du opdatere systemsoftwarepakkerne.

$ sudo apt update

Brug nu følgende kommando til at installere kvotepakke på Ubuntu.

$ sudo apt install quota

Tryk på Y , og derefter ENTER for at installationsprocessen skal starte.

Bekræft installationsversionen ved at køre kommandoen nedenfor. Dit versionsnummer kan afvige fra det, du ser nedenfor.

$ quota --version

Trin 2: Installation af modulet til kvotekerne

Dem, der kører et skybaseret virtuelt system, mangler standard Ubuntu-installationen muligvis kernemodulerne, der understøtter brugen af kvote. Du skal bekræfte ved hjælp af søgeværktøjet og sikre dig, at de to moduler, kvota_v1 og kvote _v2, er inde i/lib/moduler-biblioteket.

$ find /lib/modules/`uname -r` -type f -name '*quota_v*.ko*'

Dette skal være resultatet af ovenstående kommando.

Du skal ikke bekymre dig om kerneversionerne, så længe de to moduler er til stede. Hvis den ikke findes, skal du bruge følgende kommando til at installere kvotekernemoduler som vist.

$ sudo apt install linux-image-extra-virtual

Du får de rigtige moduler, du har brug for til kvoteimplementering.

Trin 3: Opdatering af filsystemmonteringsindstillinger

For at kvoterne skal være aktive på et specifikt system, skal det monteres med relaterede kvoteindstillinger. Du kan gøre dette ved at opdatere filsystemposten, der findes i filen/etc/fstab.

$ sudo nano /etc/fstab

Du skal være klar til at redigere filen korrekt. Forskellen mellem en fstab-fil og en desktop-en er forskellen i, hvordan / eller root-filsystemet repræsenterer hele diskpladsen. Udskift linjen (/) , der peger på rodsystemet ved hjælp af nedenstående linjer.

LABEL=cloudimg-rootfs   /        ext4   usrquota,grpquota        0 0

Linjerne ændres, så brugerkvoten og grpquotaen er tilgængelig. Du kan efterlade en, der ikke er en del af den endelige konfiguration. Hvis fstab havde nogle muligheder, skal du tilføje de nye muligheder i slutningen af linjen. Mens du gør det vedhæftede, skal du adskille de nye emner med et komma, men uden mellemrum mellem dem.

Genmonter filsystemet, så ændringerne træder i kraft.

$ sudo mount -o remount /

BEMÆRK: Bekræft, at der ikke er mellemrum mellem indstillingerne i/etc/fstab for at undgå sådanne fejl.

mount: /etc/fstab: parse error

Verifikationen af brugen af nye indstillinger ved montering af filsystemet i/proc/mounts-filen sker gennem grep. Kommandoen viser rodfilsystemets indtastning i filen.

$ sudo cat /proc/mounts | grep ' / '

Fra output kan du se de to muligheder, vi har oprettet. Det er på tide at tænde for kvotesystemet.

Trin 4: Aktivering af diskkvoter på Ubuntu

Først skal du køre quotacheck-kommandoen.

$ sudo quotacheck -ugm /

Kommandoen opretter to filer til en kvotebruger og en kvotegruppe, der har oplysninger om filsystemets grænse og brug. Disse filer skal være til stede, inden du begynder at bruge kvoten.

Her er en definition af parametrene:

  • -u : symboliserer, at en brugerbaseret kvotefil oprettes.
  • -g : angiver, at der oprettes en gruppebaseret kvotefil.
  • -m: deaktiverer genmontering af filsystemet som en skrivebeskyttet, mens det samtidig giver nøjagtige resultater i et miljø, hvor brugeren fortsætter med at gemme filer. Indstillingen m er ikke obligatorisk under opsætningen.

Når der ikke er behov for at aktivere brugen af kvoter baseret på bruger eller gruppe, er der ikke behov for at køre indstillingen quotacheck. Bekræft dette ved at angive rodmappen ved hjælp af kommandoen ls.

$ ls /
aquota.group  bin   dev  home        initrd.img.old  lib64       media  opt   root  sbin  srv  tmp  var      vmlinuz.old
aquota.user   boot  etc  initrd.img  lib             lost+found  mnt    proc  run   snap  sys  usr  vmlinuz

Manglende medtagelse af parametrene u og g i kommandoen quotacheck, de tilsvarende filer mangler.

Nu er vi klar til at aktivere kvote på rod (/) filsystemet med følgende kommando.

$ sudo quotaon -v /

Trin 5: Konfigurer kvoter for en enkelt bruger

Vi kan bruge kommandoer edquota og setquota til at indstille dem til brugere eller grupper.

Edquota kommandoer redigerer kvoter, for eksempel kan vi redigere en kvote, der tilhører tecmint bruger ved hjælp af:

$ sudo edquota -u tecmint

Brug af indstillingen -u angiver, at kvoten tilhører en bruger. Brug indstillingen -g , hvis du har brug for at redigere en kvote, der tilhører en gruppe. Kommandoen åbner en fil ved hjælp af dit valg af teksteditor.

Outputtet viser brugernavnet, uid, filsystemet med aktive kvoter og brugen af blokke og inoder. En kvote baseret på inoder begrænser antallet af filer og mapper, som brugere kan oprette uanset størrelsen, de bruger på disken. De fleste administratorer foretrækker den blokbaserede kvote, der styrer diskpladsen.

BEMÆRK: brugen af blokke viser ikke, hvordan den kan ændre sig afhængigt af forskellige faktorer, såsom kommandolinjeværktøjet, der rapporterer dem. Inden for sammenhængskvoterne på Ubuntu kan vi antage, at en enkelt blok er den samme som en kilobyte diskplads.

Ved hjælp af kommandolinjen ovenfor bruger brugeren 2032 blokke, hvilket er det samme som 2032 KB plads på/dev/sda1. 0-værdien deaktiverer både bløde og hårde grænser.

Hvert kvotesæt tillader opsætning af den bløde og hårde grænse. En bruger, der går over den bløde grænse, kan være over sin kvote, men ikke forhindret i at bruge flere mellemrum eller inoder. Brugeren har i et sådant tilfælde syv dage til at indløse deres bløde grænserum, hvilket ikke gør det vanskeligere at gemme eller oprette filer.

En hård grænse betyder, at oprettelsen af nye blokke eller inoder stopper, når du når grænsen. Brugere rapporterer, at de ser advarsler eller fejl, mens de udfører regelmæssige opgaver.

Vi kan opdatere tecmints blokkvote til at have en blød grænse på 100 MB og 110 MB til den hårde grænse.

Efter redigering skal du lukke filen og kontrollere de nye indstillinger for brugerkvotegrænse ved hjælp af kommandoen kvote.

$ sudo quota -vs tecmint

BEMÆRK: Når brugerne får mulighed for at analysere deres kvoter uden at påberåbe sig sudo-kommandoen, skal de have adgang til at læse kvotefiler under oprettelsesfasen i trin fire. En nem måde at gøre det på er at oprette en brugers gruppe og give gruppen adgang, så du kan føje brugere til den.

setquota opdaterer kvoteoplysningerne ved hjælp af en enkelt kommando uden nogen interaktiv opsætning. Kommandoen kræver brugernavn og indstilling af både de bløde og hårde grænser, som blokken og inoden skal bruge. Du bliver også nødt til at erklære det filsystem, kvoten vil bruge.

$ sudo setquota -u tecmint 200M 220M 0 0 /

Kommandoen fordobler de blokbaserede kvotegrænser til 200 megabyte og 220 megabyte. De to 0 0 indikerer, at både de hårde og bløde grænser ikke er sat, det er et krav, selv når der ikke er behov for at indstille inode-baserede kvoter.

Som sædvanligt skal du bruge kvotekommandoen til at bekræfte dine fremskridt.

$ sudo quota -vs tecmint

Trin 6: Generering af kvoterapporter

Generering af en kvoterapport skal angive brug fra alle brugere. Kommandotekvoten anvendes.

$ sudo repquota -s /

Outputtet ovenfor er en rapport om / rodfilsystemet. -s instruerer repota til at give resultater i menneskeligt læsbart format.

Standardblokeringstid er 7 dage. Grace-kolonnen advarer brugeren om antallet af dage før afvisning af adgang til ressourcedisken.

Trin 7: Indstil konfigurationsgrace-perioder

Nådeperioden er den tid, en bruger får tilladelse til at arbejde ud over standardtimingen.

$ sudo setquota -t 864000 864000 /

Kommandoen instruerer blokken og inoden om at have en afdragsfri periode på 864000 sekunder svarende til 10 dage. Indstillingen påvirker alle brugere, derfor skal værdier indstilles, selv når der ikke er brug af blokke og inoder. Tidsværdien skal være i sekunder.

Bekræft ændringerne, og se om det trådte i kraft ved hjælp af kommandoen:

$ sudo repquota -s /

Almindelige fejlmeddelelser

quotaon: cannot find //aquota.group on /dev/vda1 [/]
quotaon: cannot find //aquota.user on /dev/vda1 [/]

Ovenstående fejl er almindelig, hvis du forsøger at aktivere kvoter ved hjælp af kommandoen qoutaon inden et forsøg på at kontrollere status for en kvote ved hjælp af kommandotabellen.

quotaon: using //aquota.group on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.
quotaon: using //aquota.user on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.

Denne fejl fortæller administratoren, at kernen ikke understøtter, eller at du kan have den forkerte version på maskinen (vi har quota_v1 og quota_v2). For Ubuntu er sådanne fejl almindelige på en skybaseret virtuel server.

Fix fejlen ved at installere pakken Linux-image-extra-virtual ved hjælp af apt-kommandoen.

quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //quota.user: No such file or directory

Fejlen er bemærkelsesværdig, når den nuværende bruger ikke har tilladelse til at læse kvotefiler. Som administrator behøver du kun at foretage de korrekte ændringer af tilladelser eller bruge sudo, når du har brug for adgang til filer i et kvotesystem eller en fil.

Øverst i artiklen startede vi med kommandolinjeværktøjer til kvoter og verifikation af kerneversionen og gik videre for at forklare, hvordan man opretter en blokbaseret kvote for en enkelt bruger, og hvordan man genererer en rapport om en filsystemkvote brug.

Artiklen dækker også almindelige fejl, og hvordan man undgår dem ved hjælp af en ekstra pakke eller verificering af kerneversionen på dit system.