[antipub] Mise à jour de /etc/hosts
justement parce que j'obtiens:
Code : Tout sélectionner
[wido@desktop ~]$ cat /etc/hosts
127.0.0.1 localhost
192.168.1.1 passerelle
192.168.1.2 dinauzor
# blabla en fonction du contenu du fichier hosts qu'on souhaite toujours avoir.
##### L'antipub commence ######
EOT
dos2unix /tmp/hosts.txt
# On change les adresses 127.0.0.1 vers 0.0.0.0
# et on évite de remettre une nouvelle adresse pour localhost
cat /tmp/hosts.txt | sed "s#127\.0\.0\.1#0\.0\.0\.0#" | grep -v "localhost" >> /etc/hosts
- mélodie
- Maître du Kyudo
- Messages : 2784
- Inscription : lun. 30 oct. 2006, 02:06
- Localisation : Pyrénées
Pour la partie avant "####L'antipub commence #### relis ça ?wido a écrit :justement parce que j'obtiens:Code : Tout sélectionner
[wido@desktop ~]$ cat /etc/hosts 127.0.0.1 localhost 192.168.1.1 passerelle 192.168.1.2 dinauzor # blabla en fonction du contenu du fichier hosts qu'on souhaite toujours avoir. ##### L'antipub commence ###### EOT dos2unix /tmp/hosts.txt # On change les adresses 127.0.0.1 vers 0.0.0.0 # et on évite de remettre une nouvelle adresse pour localhost cat /tmp/hosts.txt | sed "s#127\.0\.0\.1#0\.0\.0\.0#" | grep -v "localhost" >> /etc/hosts
y'a pas les hôtes passerelle et dinauzor chez toi, si ?127.0.0.1 localhost
192.168.1.1 passerelle
192.168.1.2 dinauzor
# blabla en fonction du contenu du fichier hosts qu'on souhaite toujours avoir.
Par ailleurs vu la taille du fichier hosts.txt (et donc de ce qui est copié dans ton /etc/hosts) je te déconseille la commande "cat".

/EDIT : Je viens de l'essayer. J'ai remplacé la partie ci-dessus par mes hôtes, nommé le script hostsupdate et l'ai mis dans mon .local/bin, l'ai rendu exécutable (chmod a+x) et l'ai lancé : ./hostupdate : il m'a bien entendu rétorqué qu'il fallait être root, et que : sudo ./hostupdate, et enfin voici la différence avant/après:
Avant:
Après:127.0.0.1 localhost
192.168.0.1 nom-de-ma-passerelle
192.168.0.2 squirrel
192.168.0.3 bidule
(...)
# *********************************************************#
# ------------ Updated: September-23-2008 -----------------#
# *********************************************************#
(...)
127.0.0.1 localhost
192.168.0.1 nom-de-ma-passerelle
192.168.0.2 squirrel
192.168.0.3 bidule
(...)
# *********************************************************#
# -------------- Updated: February-11-2009 -----------------#
# *********************************************************#
(...)
Je n'avais pas pensé au risque de spoofing.farvardin a écrit :par contre vu que c'est automatique, si par exemple un pirate arrive à hacker le site qui diffuse cette liste, et que je me retrouve avec des adresses bidons dans mon /etc/hosts (genre ubuntu.com à la place de archlinux.fr), c'est pas un peu risqué ?
Maintenant il n'y a que les lignes contenant les adresses en 0.0.0.0 (les ex-127.0.0.1) et les commentaires qui sont copiées dans le fichiers hosts. Plus de spoofing possible, juste une possible mise en liste noire. Ce qui est à mon avis beaucoup moins grave.
Anarchy for the triple A.
10 euros? ok pas de problème10 balles que tu lances pas le script en root

je lance bien en root, je le lance via le script en root
sh host.sh
Pour mélodie je reprends exactement toutes les lignes de commandes du script de mimas
voici le pastbin de /etc/hosts:
Code : Tout sélectionner
http://pastebin.archlinux.fr/323106
-copie du script dans un fichier que je nomme hosts.sh, je modifie l'attribut pour qu'il soit exécutable.
je passe en root et je l'exécute: /home/wido/Desktop/hosts.sh , le script se déroule normalement:
Code : Tout sélectionner
bash-3.2# '/home/wido/Desktop/hosts.sh'
--2009-03-01 20:39:57-- http://www.mvps.org/winhelp2002/hosts.txt
Résolution de www.mvps.org... 209.68.48.119
Connexion vers www.mvps.org|209.68.48.119|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 610711 (596K) [text/plain]
Saving to: `/tmp/hosts.txt'
100%[======================================>] 610 711 126K/s in 5,2s
2009-03-01 20:40:03 (114 KB/s) - « /tmp/hosts.txt » sauvegardé [610711/610711]
bash-3.2#
ensuite j'ouvre le fichier /etc/hosts et voilà il n'y a aucune de ces lignes.
- mélodie
- Maître du Kyudo
- Messages : 2784
- Inscription : lun. 30 oct. 2006, 02:06
- Localisation : Pyrénées
Hic !
Soit tu t'es trompé en répondant soit tu t'es trompé sur toute la ligne, mais en ce cas tu ne devrais peut-être même pas être capable de venir sur le web avec ton actuel fichier /etc/hosts ? Bon j'en sais rien.
Voici mon fichier /etc/hosts quand il est... on va dire, d'origine, d'accord ? Sachant que j'ai nommé ma machine squirrel (c'est son nom d'hôte) et que son ip fixe sur le réseau local est 192.168.0.2 (c'est aussi l'ip que je trouve si je lance ifconfig : d'accord ?)
Voici mon fichier /etc/hosts:
Le script de mimas, *une fois chez moi*, est maintenant ceci:
C'est cette partie là que tu dois personnaliser pour que ce script ajoute ce qui est souhaité. (Sans supprimer ce qui est là à l'origine).
Ensuite, je nomme ce script par un nom identifiable autre-que-hosts surtout : hostmodif par exemple (pas de .sh à la fin). Je le rends exécutable et l'exécute ainsi, directement depuis le répertoire où je l'ai installé (sois chez moi le répertoire .local/bin que j'ai créé exprès pour les scripts personnels à garder sous la main) :
Et c'est tout ! Nous ne nous occupons pas de ce qui se passe dans /tmp, nous n'avons pas besoin de nous en occuper et nous ne voulons pas le savoir.
À toi de jouer.
Soit tu t'es trompé en répondant soit tu t'es trompé sur toute la ligne, mais en ce cas tu ne devrais peut-être même pas être capable de venir sur le web avec ton actuel fichier /etc/hosts ? Bon j'en sais rien.
Voici mon fichier /etc/hosts quand il est... on va dire, d'origine, d'accord ? Sachant que j'ai nommé ma machine squirrel (c'est son nom d'hôte) et que son ip fixe sur le réseau local est 192.168.0.2 (c'est aussi l'ip que je trouve si je lance ifconfig : d'accord ?)
Voici mon fichier /etc/hosts:
C'est aussi possible d'avoir le même avec un commentaire avant et après:127.0.0.1 localhost.localdomain localhost squirrel
192.168.0.2 squirrel ## là ce n'est pas obligatoire
192.168.0.1 routeur ## là c'est ma passerelle ce n'est pas obligatoire non plus
192.168.0.33 trottinette ## là c'est une autre machine sur le réseau local ce n'est pas obligatoire non plus
Voilà. Tu noteras que ce que tu nous indiques (ton pastebin) comme étant ton fichier hôte ne ressemble pas à un fichier hôte.#<ip-adress> <localhost.localdomain.org><hostname>
127.0.0.1 localhost.localdomain localhost squirrel
192.168.0.2 squirrel ## là ce n'est pas obligatoire
192.168.0.1 routeur ## là c'est ma passerelle ce n'est pas obligatoire non plus
192.168.0.33 trottinette ## là c'est une autre machine sur le réseau local ce n'est pas obligatoire non plus
# end of file
Le script de mimas, *une fois chez moi*, est maintenant ceci:
Toute la partie en ROUGE est le contenu de mon fichier /etc/hosts originel#!/bin/sh
HOSTS=/etc/hosts
WH_HOSTS=/tmp/hosts.txt
if [ ! $(id -u) = 0 ]; then
echo "Il faut être root"
exit 1
fi
[ -f $WH_HOSTS ] && rm $WH_HOSTS
wget http://www.mvps.org/winhelp2002/hosts.txt -O $WH_HOSTS
cat > $HOSTS << EOT
#<ip-adress> <localhost.localdomain.org><hostname>
127.0.0.1 localhost.localdomain localhost squirrel
192.168.0.2 squirrel ## là ce n'est pas obligatoire
192.168.0.1 routeur ## là c'est ma passerelle ce n'est pas obligatoire non plus
192.168.0.33 trottinette ## là c'est une autre machine sur le réseau local ce n'est pas obligatoire non plus
# end of file
##### L'antipub commence ######
EOT
dos2unix $WH_HOSTS
# On change les adresses 127.0.0.1 vers 0.0.0.0
# et on évite de remettre une nouvelle adresse pour localhost
sed -i "s#127\.0\.0\.1#0.0.0.0#" $WH_HOSTS
sed -i "s#.*localhost##" $WH_HOSTS
cat $WH_HOSTS | grep -E "^([0\.]{7}|#) " >> $HOSTS

C'est cette partie là que tu dois personnaliser pour que ce script ajoute ce qui est souhaité. (Sans supprimer ce qui est là à l'origine).
Ensuite, je nomme ce script par un nom identifiable autre-que-hosts surtout : hostmodif par exemple (pas de .sh à la fin). Je le rends exécutable et l'exécute ainsi, directement depuis le répertoire où je l'ai installé (sois chez moi le répertoire .local/bin que j'ai créé exprès pour les scripts personnels à garder sous la main) :
Code : Tout sélectionner
$cd .local/bin
$su
passwd (ici j'écris mon mot de passe root)
#./hostmodif
À toi de jouer.

non plus, il n'y a pas une affaire de dépendance ou une connerie du genre?
je l'ai fait sur un autre pc et j'ai exactement le même résultat avec le script de melodie.
edit:
EDIT2 j'en ai fait un qui fonctionne:
je l'ai fait sur un autre pc et j'ai exactement le même résultat avec le script de melodie.
edit:
mais ça avancebash-3.2# pacman -Ss dos2unix
extra/hd2u 1.0.3-1
Dos2Unix text file converter
EDIT2 j'en ai fait un qui fonctionne:
Code : Tout sélectionner
#!/bin/sh
if [ ! $(id -u) = 0 ]; then
echo "Il faut être root"
exit 1
fi
rm /tmp/hosts
rm /tmp/hosts.txt
echo "127.0.0.1 localhost
# *********************************************************#" >> /tmp/hosts
wget http://www.mvps.org/winhelp2002/hosts.txt -O /tmp/hosts.txt
cat /tmp/hosts.txt >> /tmp/hosts
cp /tmp/hosts /etc/hosts
pour savoir pourquoi l'autre ne fonctionnait pas:
rajoute unjuste aprèslance ton script avecet pastebin le fichier de log.
rajoute un
Code : Tout sélectionner
set -x
Code : Tout sélectionner
#!/bin/sh
Code : Tout sélectionner
'/home/wido/Desktop/hosts.sh' &> un_fichier_de_log
http://pastebin.archlinux.fr/pastebin.php?dl=323346
tu n'en apprenderas rien , la partie du copiage de /tmp/hosts.txt vers /etc/hosts doit manquer quelque chose ou il doit me manquer une dépendance. la copie du script est correcte voilà après le résultat revient au meme que le post de 28 feb 2009,21:11 sauf le début.
le pastebin a été effectué avec la modif du script de mélodie.
tu n'en apprenderas rien , la partie du copiage de /tmp/hosts.txt vers /etc/hosts doit manquer quelque chose ou il doit me manquer une dépendance. la copie du script est correcte voilà après le résultat revient au meme que le post de 28 feb 2009,21:11 sauf le début.
le pastebin a été effectué avec la modif du script de mélodie.
Code : Tout sélectionner
[wido@desktop ~]$ su
Mot de passe :
bash-3.2# set -x
bash-3.2# #!/bin/sh
bash-3.2# '/home/wido/Desktop/hostmodif2' &> /home/wido/Desktop/testhost.log
+ /home/wido/Desktop/hostmodif2

merci quand même pour l'aide
wido a écrit :Code : Tout sélectionner
[wido@desktop ~]$ su Mot de passe : bash-3.2# set -x bash-3.2# #!/bin/sh
je suis pas sûr, mais je pense que "rajoute" veut dire mettre dans le fichier et "après" veut dire ... aprèstuxce a écrit : rajoute unjuste aprèsCode : Tout sélectionner
set -x
Code : Tout sélectionner
#!/bin/sh

mais t'as raison, pas besoin de se compliquer la vie.