====== 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 Εναλλακτικά βλέπε και [[ http://www.howtoforge.com/perfect-server-debian-lenny-ispconfig2-p3 | εδώ]] για αρχικοποίηση 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 ===== Πηγές ===== * Ρύθμιση * http://learnlinux.tsf.org.za/courses/build/sys-admin/ch05s02.html * http://www.howtoforge.com/perfect-server-debian-lenny-ispconfig2-p3 * journalled quotas * http://ubuntuforums.org/showthread.php?t=1014051&page=2 * akonadi * http://www.quora.com/How-do-I-remove-akonadi-and-nepomuk-in-KDE-without-removing-KDE * http://bugs.siduction.org/issues/755 * Firefox * cache : http://practical-admin.com/blog/firefox-customization-file/