Questions fréquentes propres au module Scribe

Le test de la base de données Samba signale des erreurs

À partir d'EOLE 2.8.1, la base de données Samba du serveur Active Directory est vérifiée toutes les nuits à l'aide de la commande samba-tool dbcheck.

Le résultat de ce test est consultable à l'aide de la commande diagnose :

Il apparaît également dans l'agent Zéphir du serveur :

Exemple

Sur les modules Scribe et AmonEcole, le serveur AD est dans le conteneur addc.

Il est possible de ré-exécuter le test à l'aide de la commande : ssh addc "samba-tool dbcheck".

La commande ssh addc "samba-tool dbcheck --fix --yes" permettra de résoudre le problème dans la majorité des cas.

Truc & astuce

Une fois l'erreur résolue, les rapports peuvent être re-générées à l'aide de la commande suivante :

/usr/share/eole/sbin/run_samba_tool_dbcheck

Relancer la génération du conteneur addc

Si la génération du conteneur addc a échoué (à cause d'un problème réseau, par exemple), il est nécessaire de supprimer le conteneur LXC[1] avant de relancer la commande instance.

Exemple

root@scribe:~# lxc-stop -n addc

root@scribe:~# lxc-destroy -n addc

root@scribe:~# instance

Il est évidemment recommandé de ne pas exécuter ces commandes sur un serveur déjà en production !

Modifier le mot de passe d'un utilisateur en ligne de commande

Le mot de passe d'un utilisateur peut être modifié en ligne de commande avec la commande changepasswordeole.pl.

Exemple

# changepasswordeole.pl

Usage: /usr/sbin/changepasswordeole.pl [user] [password] [changePwd]

Remarque

Si la commande échoue avec un message qui ressemble au suivant, vérifier que le mot de passe proposé respecte la politique de sécurité mise en place sur le serveur AD :

Unable to modify unicodePwd for CN=admin,CN=Users,DC=domscribe,DC=ac-test,DC=fr (0000052D: Constraint violation - check_password_restrictions: the password does not meet the complexity criteria!)

Comment effectuer un changement de nom de domaine académique

Le changement du nom de domaine académique entraîne un dysfonctionnement de l'annuaire LDAP car la construction de l'annuaire utilise cette valeur et n'a lieu qu'une fois au moment de l'instance.

Pour connaître le nom de domaine utilisé dans l'annuaire :

# slapcat -f /etc/ldap/slapd.conf -o ldif-wrap=no | grep -E 'dn: ou=[^,]+,ou=education'

Le nom utilisé ici est ac-test :

dn: ou=ac-test,ou=education,o=gouv,c=fr

Le nom de domaine Nom de domaine académique se change dans l'interface de configuration du module dans l'onglet Général.

Le suffixe peut être changé dans le même onglet à la ligne Suffixe du nom de domaine académique.

Pour connaître la valeur de ces variables en ligne de commande :

# CreoleGet nom_academie

ac-test

# CreoleGet suffixe_domaine_academique

fr

Truc & astuce

La solution consiste à extraire l'annuaire, à faire la modification souhaitée dans tous le .ldif, puis à injecter l'annuaire modifié.

Truc & astuce

Extraire l’annuaire :

Arrêt du service

# service slapd stop

Extraction vers ~root/full-ldap-old.ldif :

# slapcat -f /etc/ldap/slapd.conf -o ldif-wrap=no > ~root/full-ldap-old.ldif

Truc & astuce

Remplacer toutes les occurrences de ou=ac-test par ou=ac-dijon et toutes les occurrences de ou : ac-test par ou : ac-dijon avec la commande :

# sed -e 's/ou=ac-test,/ou=ac-dijon,/g' -e 's/ou: ac-test,/ou=ac-dijon,/g' ~root/full-ldap-old.ldif > ~root/full-ldap-fixed.ldif

Truc & astuce

Vérifier l'absence (hors messagerie -i) de la chaîne ac-test dans le nouveau fichier :

# grep 'ac-test' ~root/full-ldap-fixed.ldif

Injection du nouvel annuaire avec les commandes suivantes :

  • Supprimer les anciens fichiers d'annuaire, sauf le fichier /var/lib/ldap/DB_CONFIG

    # rm -f /var/lib/ldap/[^D]*

  • Injecter l'annuaire corrigé

    # slapadd -f /etc/ldap/slapd.conf -l ~root/full-ldap-fixed.ldif

    -######### 47.59% eta 04s elapsed 03s spd 307.1 k/s

    Closing DB...

  • Corriger le propriétaire des fichiers de la base de données

    # chown -R openldap: /var/lib/ldap/

  • Redémarrer l'annuaire

    # service slapd start

Truc & astuce

Vérifier le bon fonctionnement du service avec la commande diagnose.

Comment effectuer un changement de nom de domaine de messagerie

Le nom de domaine de la messagerie pour les listes de discussions avant changement :

# ll $(CreoleGet container_path_mail)/var/lib/sympa/expl/

total 12drwxrwx--x 3 sympa sympa 4096 janv. 28 01:26 ./drwxrwx--x 8 sympa sympa 4096 janv. 15 20:11 ../

drwxr-xr-x 53 sympa sympa 4096 févr. 2 01:57 i-etb1.ac-test.fr/

La valeur du nom de domaine de la messagerie est ici etb1.ac-test.fr :

root@scribe:~# CreoleGet domaine_messagerie_etab

etb1.ac-test.fr

Truc & astuce

Pour changer le nom de domaine de la messagerie il est possible d'utiliser le script /usr/share/eole/backend/migre-domaine-messagerie.sh :

# /usr/share/eole/backend/migre-domaine-messagerie.sh etb1.ac-test.fr etb1.ac-dijon.fr

Migrer de etb1.ac-test.fr vers etb1.ac-dijon.fr [oui/non]

[non] : oui

# Sauvegarde de l'annuaire dans /root/annuaire-20160202.ldif...

Stop System V service slapd [ OK ]

# Modification de l'annuaire...

"#################### 100.00% eta none elapsed 06s spd 326.7 k/s

Closing DB...

Start System V service slapd [ OK ]

# Migration des configurations sympa...

# Migration des alias Exim4...

Migration terminée : modifiez la variable "Nom de domaine de la messagerie"

puis lancez la commande *reconfigure*

Truc & astuce

Comme indiqué il faut changer le Nom de domaine de la messagerie dans l'onglet Messagerie de l'interface de configuration du module.

Il est également possible de le faire en ligne de commande avec CreoleSet :

# CreoleSet domaine_messagerie_etab etb1.ac-dijon.fr

Pour vérifier la valeur de la variable :

# CreoleGet domaine_messagerie_etab

etb1.ac-dijon.fr

Attention

Le changement du nom de domaine de la messagerie nécessite une reconfiguration du serveur avec la commande reconfigure.

Le nom de domaine de la messagerie pour les listes de discussions est devenu i-etb1.ac-dijon.fr :

# ll $(CreoleGet container_path_mail)/var/lib/sympa/expl/

total 12drwxrwx--x 3 sympa sympa 4096 févr. 2 15:49 ./drwxrwx--x 8 sympa sympa 4096 janv. 15 20:11 ../drwxr-xr-x 53 sympa sympa 4096 févr. 2 01:57 i-etb1.ac-dijon.fr/

Comment effectuer un changement de nom du serveur de fichier

Le changement du nom du contrôleur de domaine et/ou du nom du domaine Samba entraîne un dysfonctionnement de l'annuaire LDAP car la construction de l'annuaire utilise cette valeur et n'a lieu qu'une fois au moment de l'instance.

Pour connaître le nom du domaine Samba utilisé dans l'annuaire :

# slapcat -f /etc/ldap/slapd.conf -o ldif-wrap=no | grep "^sambaDomainName"

Le nom utilisé ici est dompedago :

sambaDomainName: dompedago

Pour connaître le nom du contrôleur de domaine utilisé dans l'annuaire :

# slapcat -f /etc/ldap/slapd.conf -o ldif-wrap=no | grep -m1 'sambaShareURI'

Le nom utilisé ici est scribe :

sambaShareURI: \\scribe\icones$

Le nom du contrôleur de domaine et le nom du domaine Samba sont configurés dans l'interface de configuration du module dans l'onglet Samba.

Pour connaître la valeur de ces variables en ligne de commande :

# CreoleGet smb_netbios_name

scribe

# CreoleGet smb_workgroup

dompedago

Truc & astuce

La solution consiste à extraire l'annuaire, à faire la modification souhaitée dans tous le .ldif, puis à injecter l'annuaire modifié.

Truc & astuce

Extraire l’annuaire après arrêt du service :

Arrêt du service

# service slapd stop

Extraction vers ~root/full-ldap-old.ldif :

# slapcat -f /etc/ldap/slapd.conf -o ldif-wrap=no > ~root/full-ldap-old.ldif

Truc & astuce

Remplacer toutes les occurrences de scribe par nomnetbios avec la commande :

# sed -e 's/\\\\scribe\\/\\\\nomnetbios\\/g' ~root/full-ldap-old.ldif > ~root/full-ldap-partiallyprefixed.ldif

# sed -e 's/\/\/scribe\//\/\/nomnetbios\//g' ~root/full-ldap-partiallyprefixed.ldif > ~root/full-ldap-prefixed.ldif

Truc & astuce

Remplacer toutes les occurrences de dompedago par nomworkgroup avec la commande :

# sed -e 's/=dompedago,/=nomworkgroup,/g' -e 's/sambaDomainName: dompedago/sambaDomainName: nomworkgroup/g' ~root/full-ldap-prefixed.ldif > ~root/full-ldap-fixed.ldif

Truc & astuce

Vérifier l'absence (hors messagerie -i) de la chaîne ac-test dans le nouveau fichier :

# grep 'scribe' ~root/full-ldap-prefixed.ldif

Injection du nouvel annuaire avec les commandes suivantes :

  • Supprimer les anciens fichiers d'annuaire, sauf le fichier /var/lib/ldap/DB_CONFIG

    # rm -f /var/lib/ldap/[^D]*

  • Injecter l'annuaire corrigé

    # slapadd -f /etc/ldap/slapd.conf -l ~root/full-ldap-prefixed.ldif

    -######### 47.59% eta 04s elapsed 03s spd 307.1 k/s

    Closing DB...

  • Corriger le propriétaire des fichiers de la base de données

    # chown -R openldap: /var/lib/ldap/

  • Redémarrer l'annuaire

    # service slapd start

Truc & astuce

Vider le cache de Samba :

# net cache flush

Si cela ne suffit pas il faut supprimer les fichiers /var/lib/samba/wins.dat et /var/cache/samba/browse.dat :

# service samba stop

# rm -f /var/lib/samba/wins.dat /var/cache/samba/browse.dat

# service samba start

Truc & astuce

Vérifier le bon fonctionnement du service avec la commande diagnose.

Comment effectuer un changement de l'identifiant de l'établissement (UAI)

L'identifiant de l'établissement est une valeur verrouillée dans l'interface de configuration une fois le serveur instancié.

Il est vivement recommandé de ne pas éditer manuellement le fichier config.eol pour éviter les erreurs de frappe ou de type de données.

Truc & astuce

Exporter puis importer le fichier de configuration courant permet de passer outre le verrouillage des variables.

Attention

Cette astuce demande une bonne maîtrise des implications que peut avoir le changement d'une valeur verrouillée. Et une valeur n'est jamais verrouillée sans raison.

Par exemple, le changement de l'identifiant de l'établissement ne se répercute pas sur l'annuaire dont le schéma n'est construit qu'une fois au moment de l'instance du serveur.

Exemple

Pour modifier la valeur verrouillée Identifiant de l'établissement :

  • ouvrir l'interface de configuration du module ;

  • importer le fichier de configuration courant : FichierImporter une Configuration/etc/eole/config.eol ;

  • modifier la valeur de l'identifiant de l'établissement ;

  • enregistrer la configuration : FichierEnregistrer la configuration ;

  • procéder à une reconfiguration du serveur à l'aide de la commande reconfigure.

Le changement de l'identifiant de l'établissement (UAI) entraîne un dysfonctionnement de l'annuaire LDAP car la construction de l'annuaire utilise cette valeur et n'a lieu qu'une fois au moment de l'instance.

Pour connaître l'identifiant utilisé dans l'annuaire :

# slapcat -f /etc/ldap/slapd.conf -o ldif-wrap=no | grep "cn=edu"

L'UAI utilisé ici est 0000000A  :

dn: cn=edu,ou=local,ou=groupes,ou=0000000A,ou=ac-test,ou=education,o=gouv,c=fr

L'UAI est configuré dans l'interface de configuration du module dans l'onglet Général.

Pour connaître la valeur de cette variable en ligne de commande :

# CreoleGet numero_etab

0000000A

Truc & astuce

La solution consiste à extraire l'annuaire, à faire la modification souhaitée dans tous le .ldif, puis à injecter l'annuaire modifié.

Truc & astuce

Extraire l’annuaire après arrêt du service :

Arrêt du service

# service slapd stop

Extraction vers ~root/full-ldap-old.ldif :

# slapcat -f /etc/ldap/slapd.conf -o ldif-wrap=no > ~root/full-ldap-old.ldif

Truc & astuce

Remplacer toutes les occurrences de 0000000A par 0000000B avec la commande :

# sed -e 's/ou=0000000A/ou=0000000B/g' -e 's/ou: 0000000A/ou: 0000000B/g' ~root/full-ldap-old.ldif > ~root/full-ldap-prefixed.ldif

Truc & astuce

Vérifier l'absence de la chaîne 0000000A dans le nouveau fichier :

# grep '0000000A' ~root/full-ldap-prefixed.ldif

Injection du nouvel annuaire avec les commandes suivantes :

  • Supprimer les anciens fichiers d'annuaire, sauf le fichier /var/lib/ldap/DB_CONFIG

    # rm -f /var/lib/ldap/[^D]*

  • Injecter l'annuaire corrigé

    # slapadd -f /etc/ldap/slapd.conf -l ~root/full-ldap-prefixed.ldif

    -######### 47.59% eta 04s elapsed 03s spd 307.1 k/s

    Closing DB...

  • Corriger le propriétaire des fichiers de la base de données

    # chown -R openldap: /var/lib/ldap/

  • Redémarrer l'annuaire

    # service slapd start

Procéder à la reconfiguration du serveur pour la prise en compte du changement de la valeur de l'identifiant dans l'interface de configuration du module.

Truc & astuce

Vérifier le bon fonctionnement du service avec la commande diagnose.

Erreur MySQL : Access denied for user 'debian-sys-maint'@'localhost'

Suite à une restauration ou à une migration il est possible de rencontrer l'erreur suivante :

ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)

Truc & astuceIl faut remettre à jour le mot de passe de l'utilisateur MySQL "debian-sys-maint"

  • récupérer le nouveau mot de passe MySQL :

    # grep password /etc/mysql/debian.cnf

  • Sur une première console, lancer MySQL en mode safe :

    # mysqld_safe --skip-grant-tables

  • Sur une seconde console, se connecter à la base :

    # mysql -u root mysql

  • mettre à jour le mot de passe :

    UPDATE user SET authentication_string=PASSWORD('MOT_DE_PASSE_RECUPERE_AVEC_GREP') WHERE User='debian-sys-maint' ;

    FLUSH PRIVILEGES ;

  • quitter la console :

    \quit ou Ctrl + d

  • relancer MySQL :

    # killall mysqld

    attendre quelques secondes

    # service mysql start

Erreur MySQL : Too many connections

Le nombre de connexions clientes maximum simultanées à la base de données MySQL est atteint.

Truc & astuceAugmenter le paramètre mysql_max_connexions

Dans l'interface de configuration du module, en mode expert, aller dans l'onglet Mysql et adapter le Nombre maximum de connexions simultanées aux usages constatés.

Lancer la commande reconfigure pour appliquer le nouveau réglage.

Délai expiré avec un client FTP graphique

L'accès FTP se fait bien avec l'application web Pydio et en console mais impossible de se connecter avec un client graphique comme Filezilla ou gFTP. Un message de délai expiré apparaît :

Connexion terminée par expiration du délai d'attente

Truc & astucePasser le client FTP en mode actif

Les clients FTP sont par défaut configurés en mode passif. Les passer en mode actif résout le problème.

Importation : le caractère "c" s'est ajouté devant le nom d'une classe

Lors d'une importation, le caractère un "c" s'est ajouté devant le nom de la classe.

Truc & astuce

Les causes d'un renommage sont généralement les suivantes :

  • le nom du groupe est totalement numérique (ex : 301 pour 3eme1) ;
  • il existe une homonymie au niveau des groupes (ex : niveau et classe dénommés 6g).