Anomalie #4004
problème fichier hosts et client scribe 2.3
Description
Il semblerait que le client scribe ajoute maintenant une entrée dans le fichier hosts des clients windows.
dans le cas d'un fichier hosts modifié, la nouvelle ligne se retrouve à la suite de la dernière, donc sans retour chariot:
172.16.0.245 serveur1192.168.220.10 SRV-SCRIBE
du coup les stations ne joignent plus le domaine.
Demandes liées
Historique
#1 Mis à jour par Joël Cuissinat il y a plus de 11 ans
- Assigné à mis à Klaas TJEBBES
#2 Mis à jour par Karim Ayari il y a plus de 11 ans
On a eut un autre établissement qui a rencontré le même problème, sauf que là le fichier hosts était celui par défaut (pas d'ajouts personnel)
@127.0.0.1 localhost
127.0.0.1 localhost192.168.220.10 SRV-SCRIBE@
et apparemment ça le ferais pas sur tout les postes, ce qui reste à confirmer. C'est inquiétant car plus aucune jonction au domaine possible.
#3 Mis à jour par Klaas TJEBBES il y a plus de 11 ans
Peut-on avoir en pièce jointe un fichier host (zippé) d'une machine à problème ?
Si possible, aussi une version avant la modification faite par le client Scribe ? (pas une où on aurait enlevé la modification mais un fichier issu d'une image de poste dont on sait qu'il plante à tous les coups)
#4 Mis à jour par Anonyme il y a plus de 11 ans
Je confirme le problème.
Je n'ai pas de fichier "avant" le problème car on m'a signalé le problème "après".
On constate que l'entrée relative à scribe est ajoutée au bout de la dernière ligne du fichier hosts.
Donc, si ce fichier se termine par une ligne vide, pas de problème.
En revanche, si la dernière ligne ne se termine pas par un retour chariot, elle voit la nouvelle entrée ajoutée au bout.
Par exemple, la ligne suivante (en considérant qu'il s'agit de la dernière ligne du fichier et qu'elle n'est donc pas suivie d'un saut de ligne) :
127.0.0.1 localhost
deviendra
127.0.0.1 localhost172.16.1.1 SCRIBE
(bien entendu, ici 172.16.1.1 est l'adresse de mon serveur et SCRIBE est son nom)
Reproductibilité à 100%.
En analysant le script confservscribe.py du paquet controle-vnc, et plus particulièrement la fonction "addtohosts", à partir de la ligne 38, on voit :
38 for i in c: 39 if i.strip().startswith('#') or not i.strip(): 40 if not i.endswith('\n'): i = '%s\n'%i #retour chariot fin de fichier 41 r.append(i) # on conserve les commentaires et les lignes vides 42 continue 43 try: 44 ip, host = i.strip().split()[:2] 45 except: 46 continue
On traite donc, dans le premier if (ligne 39) de la boucle for , les lignes qui commencent par un #, ainsi que les lignes sur lesquelles un strip() renvoie False.
strip() renverra False lorsqu'il verra une ligne vide.
Donc, ma ligne :
127.0.0.1 localhost
qui ne commence pas par un # et qui n'est pas vide ne sera pas traitée dans la suite du if.
Elle sera néanmoins inscrite à la ligne 61, sans qu'un test sur l'existence d'un retour chariot ait eu lieu.
Je suppose que le not de la ligne 39 est de trop.
Ca ne résout pas, bien entendu le cas où la mauvaise entrée a été inscrite dans le fichier hosts.
#5 Mis à jour par Klaas TJEBBES il y a plus de 11 ans
- Projet changé de Scribe à controle-vnc-client
Déplacement du test d'ajout de saut de ligne en début de fonction.
#6 Mis à jour par Klaas TJEBBES il y a plus de 11 ans
- Statut changé de Nouveau à Résolu
#7 Mis à jour par Joël Cuissinat il y a plus de 11 ans
- Sujet changé de problème fichier hosts et client scribe 2.2 à problème fichier hosts et client scribe 2.3
- Version cible mis à Mises à jour 2.3.7 RC
- Distribution changé de EOLE 2.2 à EOLE 2.3
cf. #4233
#8 Mis à jour par Joël Cuissinat il y a plus de 11 ans
- % réalisé changé de 0 à 100
#9 Mis à jour par Joël Cuissinat il y a plus de 11 ans
- Statut changé de Résolu à Fermé