LinuxFanClub wiki

Υπηρεσίες, Προγραμματισμός, Εκπαίδευση ..

User Tools

Site Tools


el:linux:debian:server:quota

Quota - Υπηρεσία ελέγχου όριου χρήσης δίσκου

Εγκατάσταση / Αρχικές Ρυθμίσεις

Κάνε εγκατάσταση τα πακέτα quota και acl.

aptitude install quota acl

Άλλαξε το /etc/fstab για την κατάτμηση που θέλεις να ενεργοποιηθεί όριο χρήσης δίσκου (quota).

Εάν έχεις και άλλες κατατμήσεις linux, δοκίμασε εκεί το όριο χρήσης δίσκου αφού λάθη στην προσάρτηση της ριζικής κατάτμησης δεν θα σου επιτρέψουν να επαννεκινήσεις το σύστημα.

Για journalled quota (αν υποστηρίζεται από τον kernel)

/dev/hda5  /  reiserfs defaults,acl,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0  0  1

Για απλό quota

/dev/hda5  /  reiserfs  defaults,acl,usrquota,grpquota  0  1

Προσοχή : Εάν είναι η ριζική κατάτμηση, η /var ή κάποια άλλη κρίσιμη, κάνε επανεκκίνηση ως single-user.

Εάν έχουμε ήδη ενεργοποιημένα quotas σε μια άλλη κατάτμηση (π.χ. / )μπορούμε να τα απενεργοποιήσουμε προσωρινά εκτελώντας την quotaoff. Π.χ.

quotaoff /

Στην συνέχεια εκτελούμε

quotacheck -vcugm /home

Εάν είναι η πρώτη φορά που ενεργοποιούμε θα μας εμφανιστούν μηνύματα προειδοποίησης για το ότι δεν υπάρχει προηγούμενο αρχείο quota. Είναι φυσιολογικά

quotacheck: Scanning /dev/sda5 [/home] done
quotacheck: Cannot stat old user quota file: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος
quotacheck: Cannot stat old group quota file: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος
quotacheck: Cannot stat old user quota file: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος
quotacheck: Cannot stat old group quota file: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος
quotacheck: Checked 32303 directories and 263923 files
quotacheck: Old file not found.
quotacheck: Old file not found.

Ενεργοποιούμε τα quotas σε όλες τις κατατμήσεις

quotaon -avug 

Επανεκκινούμε επίσης την υπηρεσία και ελέγχουμε για μηνύματα λάθους

/etc/init.d/quota restart

Δοκιμάζουμε να εμφανίσουμε τα όρια χρήσης δίσκου όλων των χρηστών με την εντολή

repquota -a   

Εναλλακτικά βλέπε και εδώ για αρχικοποίηση quota

Αλλαγή ορίων δίσκου

Για να αλλάξεις τα όρια χρήσης δίσκου ενός χρήστη εκτέλεσε

edquota -u testuser 

Για να εμφανίζουμε quotas για διαμοιραζόμενους φακέλους samba

smbcquotas -L /sambahost/profiles 

Αφού οριστεί όριο χρήσης δίσκου για κάποιον χρήστη, μπορούμε να το αντιγράψουμε σε ένα σύνολο χρηστών, π.χ. αυτούς με UID πάνω από 1000 ως εξής:

edquota -p testuser `awk -F: '{if ( $3 >1000) print $1}' /etc/passwd`

Για να ορίσεις προκαθορισμένα όρια δίσκου για τους νέους χρήστες με βάση τα όρια δίσκου ενός χρήστη π.χ. με id 1001, άλλαξε το αρχείο /etc/adduser.conf ως εξής:

QUOTAUSER="1001" 

Τα όρια χρήσης δίκου είναι ορίζονται ξεχωριστά για κάθε κατάτμηση

Acl

Για να δοκιμάσεις τα acl μπες σε έναν φάκελο στον οποίο είναι ενεργοποιημένα quotas

cd /root
ls /root >ls.txt
ls -l
total 4
-rw-r--r--    1 root     root           64 Dec  8 15:19 ls.txt

Εκτέλεσε τώρα την παρακάτω εντολή

getfacl ls.txt 

Θα εμφανιστεί κάτι ανάλογο με

# file: ls.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--

Δημιούργησε δικαιώματα για έναν υπάρχοντα χρήστη π.χ. testuser

setfacl -m testuser:rw ls.txt 

Για να δούμε αν δημιουργήθηκαν

getfacl ls.txt 
# file: ls.txt
# owner: root
# group: root
user::rw-
user:testuser:rw-
group::r--
mask::rw-
other::r--

Εάν έχεις παρόμοια αποτελέσματα σημαίνει ότι λειτουργούν κανονικά τα acl!

Αντιμετώπιση Προβλημάτων

quota check on startup

Σε περίπτωση μη ομαλού τερματισμού στην επανεκκίνηση θα εκτελεστεί το quota check το οποίο μπορεί να πάρει και μισή ώρα. Εάν η εγκατάσταση είναι σε εικονική μηχανή έστω με id 101 στέλνουμε τα εξής.

qm sendkey 101 ctrl-[
qm sendkey 101 ctrl-backslash

Λανθασμένες ενδείξεις quota

Είναι πιθανόν λόγω κάποιου απότομου τερματισμού του server να εμφανιστούν λανθασμένες ενδείξεις quota. Η διαστάυρωση μπορεί να γίνει με την εντολή ncdu που εμφανίζει την πραγματική χρήση δίσκου

Για να ανανεώσουμε τα quota files εκτελούμε

quotacheck -vbugmf --all

Ξεπεράστηκε το όριο χρήσης quota

Έλεγχος

Ένας γρήγορος έλεγχος μπορεί να γίνει με την εντολή

repquota -a | grep '+'

Σε περίπτωση που ξεπεράσαμε το όριο χρήσης ενός χρήστη που π.χ. είναι 200MB ενώ τα προσωπικά του αρχεία δεν ξεπερνάνε τα 50 MB είναι πιθανόν κάποιες εφαρμογές να έχουν κρατήσει πολύ μεγάλο χώρο σε cache

akonadi

Εάν κάνουμε login στο kde το akonadi αποθηκεύει την βάση δεδομένων του που είναι πάνω από 100 MB στον φάκελο ~/.local/share/akonadi

Χρήστες με kde conf αρχεία

Θα διαγράψουμε την cache του akonadi και του nepomuk και θα αλλάξουμε τα conf αρχεία τους ώστε να μην εκκινούν.

Αρχικά δημιουργούμε ένα default conf αρχείο για το nepomuk (έστω /etc/kde4/nepomukserverrc) με περιεχόμενο

[Basic Settings]
Start Nepomuk=false

[Service-nepomukfileindexer]
autostart=false

Σε ένα περιβάλλον με πολλούς χρήστες μπορούμε να την διαγράψουμε εκτελώντας το παρακάτω script

allusers="$(ls -d /home/* | cut -d"/" -f 3)"
 
nepomukcache=.kde/share/apps/nepomuk
akonadicache=.local/share/akonadi
nepomukconf=.kde/share/config/nepomukserverrc
nepomukconfdefault=/etc/kde4/nepomukserverrc
akonadiconf=.config/akonadi/akonadiserverrc
 
for usern in $allusers; do
 
        cp $nepomukconfdefault /home/$usern/$nepomukconf
        sed -i "s/StartServer=true/StartServer=false/g" /home/$usern/$akonadiconf
        rm -rf /home/$usern/$nepomukcache
        rm -rf /home/$usern/$akonadicache
done
Χρήστες χωρίς kde conf αρχεία

Αν οι χρήστες μας είναι νέοι ή δεν έχουν ακόμα συνδεθεί στο kde δεν θα έχουν αρχεία ρυθμίσεων kde οπότε η παραπάνω μέθοδος δεν θα λειτουργήσει.

Θέλουμε την 1η φορά που θα συνδεθούν στο kde να ρυθμιστεί με βάση τις παραπάνω ρυθμίσεις. Ένας τρόπος είναι να βάλουμε καθολικές ρυθμίσεις ανά pc.

Φτιάχνουμε τον εξής φάκελο.

mkdir /etc/xdg/akonadi

και εισάγουμε μέσα το αρχείο akonadiserverrc με το παρακάτω περιεχόμενο

[QMYSQL]
Name=akonadi
Host=
StartServer=false

[Debug]
Tracer=null

Επίσης δημιουργούμε το αρχείο /etc/kde4/nepomukserverrc με περιεχόμενο

[Basic Settings]
Start Nepomuk=false

[Service-nepomukfileindexer]
autostart=false

firefox - cache

Για μείωση cache ανά pc ή ανα χρήστη http://practical-admin.com/blog/firefox-customization-file/

firefox - Urlclassifier3.sqlite

(βλ. http://kb.mozillazine.org/Urlclassifier2.sqlite)

Στον firefox υπάρχει πέρα από την cache του και ένα αρχείο βάση δεδομένων που περιέχει γνωστά phishing sites. Παρόλο που για είναι πολύ καλό για λόγους ασφαλείας δεσμεύει χώρο πάνω από 30MB. Ακόμα και να διαγραφεί ξαναδημιουργείται όταν ξαναξεκινήσει ο firefox.

Για την απενεργοποίησή του πηγαίνουμε Προτιμήσεις / Ασφάλεια και ξετσεκάρουμε τις επιλογές Φραγή σελίδων που έχουν αναφερθεί ως κακόβουλες, Φραγή σελίδων που έχουν αναφερθεί ως πλαστές

Κλείνουμε τον firefox

Διαγράφουμε το αρχείο ~/.mozilla/firefox/*/urlclassifier3.sqlite

rm ~/.mozilla/firefox/*/urlclassifier3.sqlite

επανεκκινούμε τον firefox. Το αρχείο δεν θα μεγαλώσει πλέον

Σε ένα περιβάλλον με πολλούς χρήστες μπορούμε να την διαγράψουμε εκτελώντας το παρακάτω script

for usern in $(ls -d /home/* | cut -d"/" -f 3); do 
   if [ -e /home/$usern/.mozilla/firefox/*/urlclassifier3.sqlite ]; then
      echo "Deleting urlclassifier3.sqlite from user $usern"; 
      rm -f /home/$usern/.mozilla/firefox/*/urlclassifier3.sqlite; 
   fi;
done

Θα χρειαστεί όμως κάθε χρήστης να συνδεθεί στον firefox και να κάνει τις αλλαγές που προαναφέρθηκαν στις Ρυθμίσεις στην καρτέλα Ασφάλεια

Για τους νέους χρήστες μπορούμε να κάνουμε την παραπάνω ρύθμιση σε έναν χρήστη π.χ. template και να ορίσουμε την δημιουργία των νέων χρηστών με βάση αυτόν, τροποποιώντας το αρχείο /etc/adduser.conf, αλλάζοντας την παρακάτω γραμμή

SKEL=/home/template

Πηγές

el/linux/debian/server/quota.txt · Last modified: Y/m/d H:i by vagk