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.
Related issues
History
#1 Updated by Joël Cuissinat about 11 years ago
- Assigned To set to Klaas TJEBBES
#2 Updated by Karim Ayari about 11 years ago
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 Updated by Klaas TJEBBES about 11 years ago
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 Updated by Anonymous almost 11 years ago
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 Updated by Klaas TJEBBES almost 11 years ago
- Project changed from Scribe to controle-vnc-client
Déplacement du test d'ajout de saut de ligne en début de fonction.
#6 Updated by Klaas TJEBBES almost 11 years ago
- Status changed from Nouveau to Résolu
#7 Updated by Joël Cuissinat almost 11 years ago
- Subject changed from problème fichier hosts et client scribe 2.2 to problème fichier hosts et client scribe 2.3
- Target version set to Mises à jour 2.3.7 RC
- Distribution changed from EOLE 2.2 to EOLE 2.3
cf. #4233
#8 Updated by Joël Cuissinat almost 11 years ago
- % Done changed from 0 to 100
#9 Updated by Joël Cuissinat almost 11 years ago
- Status changed from Résolu to Fermé