mercredi 30 septembre 2009
[Samba/Ldap/Qmail] WarnQuota pour surveiller les espaces disques des utilisateurs de mon annuaire LDAP
Par david techer, mercredi 30 septembre 2009 à 01:45 :: Mon réseau et compagnie...
1. Exemple attendu
WarnQuota fait parti du paquet quota. Mon but ici est d'avoir Warnquota qui tourne en tà ¢che de fond (grà ¢ce à  cron) permettant de surveiller, l'espace disque de mon utilisateur john.doe inscrit dans mon annuaire LDAP, auquel j'ai limité le quota pour son homedirectory. . Il est proche de la saturation maximale. Il reçoit donc un mail. Il est ainsi prévenu par mail que son disque est bientà ´t plein.
John se connecte à  sa boà ®te mail et reçoit le mail en question.



Installation de quota
Quota fournit lenécessaire pour celà  . Etant sous Ubuntu Studio 7.10, j'ai simplement installé les paquets suivants
dpkg -i quota_3.14-8_i386.deb dpkg -i quotatool_1.4.9-2_i386.deb
Pour la configuration avec quota, je vous renvois à  http://doc.ubuntu-fr.org/utilisateurs/mulx/quota
Me concernant le répertoire principale de mes utilisateurs dans Samba ont leur HomeDirectory dans /home/user situé monté en usrquota.grpquota vers /dev/sda1. Mon/etc/fstab est le suivant
proc /proc proc defaults 0 0 UUID=4fc59193-c26a-4067-8044-7eba781d5108 / ext3 defaults,usrquota,grpquota,errors=remount-ro 0 1 UUID=cd051fdf-1620-4045-8a58-ab54c9614ad0 none swap sw 0 0 /dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
Il est possible d'activer quota (avec quotaon ou quotaoff, ou bien en utilisant les services /etc/init.d/quota
et /etc/init.d/quotarpc
Création de l'utilisateur John Doe avec les smbldap-tools et notification de son quota
On le crée en faisant
root@olivia:~# smbldap-useradd -a -s /bin/bash -c "John DOE" -m -P john.doe Changing UNIX and samba passwords for john.doe New password: Retype new password:On crée ensuite son compte sous Qmail et activer sa boà ®te aux lettres
smbldap-qmail-useradd -A active -m john.doe@davidgis.fr -H davidgis.fr -M nolocal -D ldapwithprog \ -P /var/qmail/bin/spamcheck.sh -S /home/user/john.doe/Maildir -c 0 -q 0 -s 0 john.doeroot@olivia:~# id john.doe uid=1020(john.doe) gid=513(Domain Users) groupes=513(Domain Users)
Il faut maintenant définir les valeurs pour hard et soft limit que je fixe ici à  30 MB et 40 MB. Entre 30 et 40 MB, john.doe a encore le temps de réagir. Au delà  de 40 MB, johne.doe a atteint la limite maximale et ne pourra plus écrire dans son homedirectory.
root@olivia:~# quotatool -u john.doe -bq '30 MB' -l '40 MB' -vv / quotatool: using filesystem / quotatool: user 'john.doe' has uid 1020 quotatool: Looking for fs_spec '/' quotatool: Checking device '/dev/sda1', mounted at '/' quotatool: filesystem / has device node /dev/sda1 quotatool: Detecting quota format quotatool: Detected quota format: OLD quotatool: Detected quota interface: GENERIC quotatool: fetching quotas: device='/dev/sda1',id='1020' quotatool: quotatool: Limit Old New quotatool: ----- --- --- quotatool: block hard: 10240 40960 quotatool: block soft: 7168 30720
On vérifie avec edquota
EDITOR="vim" edquota -u john.doe
qui renvoit
Quotas disque pour user john.doe (uid 1020) : Système de fichiers blocs souple stricte inodes souple stricte /dev/sda1 5844 30720 40960 587 0 0
Configuration de warnquota avec LDAP
Le fichier en question est /etc/warnquota.conf
Vu que j'ai les informations suivantes
root@olivia:~# smbldap-usershow john.doe | head -n1 dn: uid=john.doe,ou=Users,dc=chezdavid,dc=local
Le contenu du fichier sera
root@olivia:~# cat /etc/warnquota.conf MAIL_CMD = "QMAILUSER=info /var/qmail/bin/sendmail -t" FROM = "info@davidgis.fr" SUBJECT = "Depassement disque" SUPPORT = "david.techer@davidgis.fr" PHONE = "06 60 4685 05" MESSAGE = "Bonjour %s,||Vous avez depasse votre capacite de stockage sur %h.davidgis.fr |Veuillez faire le menage.||" SIGNATURE = "Cordialement!| Equipe administration davidgis.fr|" GROUP_MESSAGE = "Bonjour, depassement pour %s" GROUP_SIGNATURE = "Cordialement!| Equipe administration|" LDAP_MAIL = true LDAP_HOST = localhost LDAP_PORT = 389 LDAP_BASEDN = ou=Users,dc=chezdavid,dc=local LDAP_SEARCH_ATTRIBUTE = uid LDAP_MAIL_ATTRIBUTE = mail LDAP_DEFAULT_MAIL_DOMAIN = davidgis.fr
Remarque:Dans le cas de Qmail, /var/qmail/bin/sendmail
correspond à  qmail-inject
Remarque: Par defaut, le paquet quota définit une tà ¢che quotidienne (/etc/cron.daily/quota
). Il est donc possible de récupérer le contenu du fichier et de repenser la fréquence de surveillance quotdienne.