Quoi qu'il en soit, ce vademecum demeure valable pour toutes les installations Linux faisant appel à un noyau 2.0.xx, mais il peut ne pas l'être avec un noyau 2.2.0 (pour le moment).
Vous êtes autorisés (et encouragés) à compléter ce document ou à le modifier ; toutefois, vous avez l'obligation de préciser l'auteur original et de fournir les sources de vos modifications. Il est bienvenu d'informer le père de chaque modification que vous aurez apportée à son article.
On dit souvent qu'un programme digne de ce nom peut être lancé et s'exécuter à partir d'une unique ligne de commande ; ceci permet d'automatiser son lancement selon des cycles de temps ou d'événements - ce que ne peut effectuer de manière standard un programme uniquement graphique (à moins d'adopter d'autres solutions encore moins << propres >>). C'est en partant de ce principe que nous allons configurer notre ordinateur afin d'offrir une utilisation de l'Internet la plus conviviale et la plus invisible possible.
Un modem est un modem; il est compatible avec les commandes AT ou n'est pas. N'essayez donc plus de vous connecter avec un WinModem ou autres spécificités Windowsiennes, cela ne fonctionnera pas (les protocoles de connexion au-delà de 9 600 kbps sont sous brevet).
Un modem est rebranché sur une prise série. Dans le cas d'un modem externe, on peut choisir entre le port Com1 ou Com2. Sous Linux, cela correspond respectivement aux sorties /dev/ttyS0 et /dev/ttyS1 .
Un simple lien symbolique de la sortie entre le modem et le fichier modem sera suffisant.
/dev # ln -s ttyS0 modem
Dans le cas d'un modem rebranché sur le second port série, changez le ttyS0 en ttyS1 .
Les modems internes fonctionnent selon le même principe, si ce n'est qu'ils correspondent souvent à la sortie /dev/ttyS2 ; il faudra peut-être alors faire appel à la commande setserial pour la configurer.
Il arrive que gpm 1 (gestion de la souris en mode texte) vienne empêcher Linux d'accéder au modem ; à moins qu'il ne vous soit absolument nécessaire, éliminez gpm de votre init.
Il existe trois scripts de connexion : deux dans /usr/bin et un dans /etc/ppp .
/usr/bin/ppp-on
#!/bin/sh # Modifiez les paramètres en fonction de votre connexion. TELEPHONE=01445566 # Le téléphone. ACCOUNT=votre_login # Le login. PASSWORD=Yz*v143 # Le mot de passe. LOCAL_IP=184.216.154.132 # l'IP local (0.0.0.0 pour un IP dynamique). REMOTE_IP=0.0.0.0 # l'IP remote si nécessaire. Normalement 0.0.0.0. NETMASK=255.255.255.0 # Le netmask si nécessaire. # # Exporte les variables pour le script /etc/ppp/ppp-on-dialer. export TELEPHONE ACCOUNT PASSWORD. DIALER_SCRIPT=/etc/ppp/ppp-on-dialer. exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS1 38400 \ asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \ noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT
/etc/ppp/ppp-on-dialer
#!/bin/sh exec /usr/sbin/chat -v \ TIMEOUT 3 \ ABORT '\nBUSY\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ '' \rAT \ 'OK-+++\c-OK' ATH0 \ TIMEOUT 30 \ OK ATDT$TELEPHONE \ CONNECT '' \ ogin:--ogin: $ACCOUNT \ assword: $PASSWORD
Et enfin, le script /usr/bin/ppp-off, qui coupera la connexion :
#!/bin/sh if [ "$1" = "" ]; then DEVICE=ppp0 else DEVICE=$1 fi if [ -r /var/run/$DEVICE.pid ]; then kill -INT `cat /var/run/$DEVICE.pid` if [ ! "$?" = "0" ]; then rm -f /var/run/$DEVICE.pid echo "ERROR: Removed stale pid file" exit 1 fi echo "PPP link to $DEVICE terminated." exit 0 fi echo "ERROR: PPP link is not active on $DEVICE" exit 1
Placez ces trois scripts et rendez-les exécutables avec la commande chmod .
~# chmod +x /usr/bin/ppp-o* /etc/ppp/ppp-on-dialer
Il ne vous reste qu'à << suider >> en root /usr/sbin/pppd, si vous voulez que n'importe quel utilisateur puisse lancer la connexion.
Eric Ruksyio nous écrit ceci dans un de ses articles sur fcol.moderated :
<< [...] après m'être battu cet après-midi pour configurer un modem Usr Sportser Ta, voici mon petit rapport (éventuellement, vous pouvez inclure ces explications pour compléter les docs sur les miroirs Linux, ça peut être utile).
But du jeu : connexion chez mon provider (Oléane) avec un modem Usr Rnis Ta carte interne. Distribution utilisée : une Redhat 5.1. Pour cela, vous devez récupérer les sources du dernier noyau (2.0.36 ou supérieur). Vous devez le compiler avec le support Isdn Hisax pour votre modem sportser.
Une fois votre noyau installé et votre machine rebootée, ne lisez aucune doc fournie avec le noyau, ne récupérez pas isdn4linux, ça ne sert à rien. Cela vous fera perdre du temps inutilement.
Le driver Hisax permet de se servir d'un nouveau device :
/dev/ttyIx
(/dev/ttyI0 chez moi) qui est votre modem numéris. Créez un lien vers ce
périphérique
ln -s /dev/ttyIx /dev/modem. Le modem obéit alors aux
commandes Hayes standard. Vous pouvez alors utiliser le programme de
configuration de connexion pour créer une connexion ppp.
Simplement, deux choses à retenir :
1) sur votre chaîne d'initialisation, faites un atz\&exxxx où atz initialise le modem et le \&exxxx permet de donner à votre carte les quatre derniers chiffres de votre téléphone. Remplacez les xxxx par les quatre derniers chiffres de votre ligne rnis ;
2) pour composer le numéro de votre provider, utilisez atd et non atdt, comme on peut le voir par défaut dans le soft de configuration de la Redhat.
Nota : il peut y avoir quelques problèmes avec certaines marques et configurations de routeurs de providers. Le problème constaté est la non-présentation du login de connexion. Ça m'est arrivé notamment avec les routeurs du pop Oléane Marseille. J'ai dû me connecter sur la Défense pour profiter d'une connexion Rnis convenable.
Profitez bien de votre connexion. Rnis, ça booste !
- Cordialement, Eric l'assistant internet ( Uin 7662513). Miroir de Linux France sur http://www.technolog.fr/miroir/www.linux-france.com/index.html>>
Il est nécessaire d'ajouter dans le fichier /etc/resolv.conf l'adresse Ip du Dns de votre fournisseur.
search nameserver 194.51.80.2
Pour éviter de passer par le serveur de noms dans le cadre de certains serveurs que vous utilisez souvent, il est judicieux de placer les IP et noms de ces serveurs dans le fichier /etc/hosts.
127.0.0.1 localhost localhost.localdomain 192.168.10.11 m2 194.51.80.12 mail.teaser.fr
Où m2 est une machine du réseau interne et où mail.teaser.fr est le serveur Internet le plus utilisé dans mon cas.
Il faut en outre que le noyau soit compilé avec l'option ppp ; c'est en général le cas par défaut de toutes les distributions. Si vous souhaitez re-compiler votre noyau, je vous renvoie directement à l'excellent Howto écrit sur le sujet et disponible dans toutes les bonnes crèmeries.
Les scripts donnés dans ce document sont disponibles sur votre système à
/usr/doc/ppp-2.2.0f. Il vous suffit de les recopier et de les modifier
en fonction de votre configuration.
Ce chapitre est encore très incomplet. Aussi, au lieu de râler, n'hésitez pas à transmettre à l'auteur toutes les astuces diverses et variées qui amélioreront les conditions de connexion à l'Internet.
Pouvoir se connecter à Internet est une chose ; profiter du << réseau des réseaux >> en est une autre. En France, la grande majorité des utilisateurs d'Internet payent leurs connexions selon l'unité de mesure quelque peu inadaptée qu'est le temps. Cette unité, qui ne s'avère pas nécessairement en rapport avec la bande passante utilisée, va nous obliger à gérer notre connexion en l'optimisant de telle manière que nous diminuerons au maximum le facteur temps.
Pour ce faire, Linux dispose d'un certain nombre d'outils et Internet d'un certain nombre de règles. La première d'entre elles est la suivante : c'est entre 5H00 et 6H00 du matin que le réseau est le moins chargé.
C'est donc entre 5H00 et 6H00 du matin que nous pourrons disposer de toute la puissance des machines de notre Fai, voire de toute la puissance de bande passante de notre ordinateur vers les autres ordinateurs.
Seulement voilà, à 5H00 du matin, vous dormez - je vous comprends bien, moi aussi. Ce n'est pas grave, nous allons demander à Linux de mettre à jour tout seul ses serveurs locaux, grâce au << daemon >> crontab .
Je vous renvoie à une documentation plus complète sur crontab, qui vous fera connaî tre tous les secrets d'utilisation de ce daemon. Survolons-le seulement afin de comprendre de quelle manière il nous rendra service.
crontab exécute les commandes qu'on lui a demandé d'effectuer selon un critère de temps : si nous lui demandons de se connecter à Internet tous les matins à 5H00, d'envoyer le courrier local, de rapatrier les messages, de mettre à jour l'usenet local (dans les deux sens), un site Internet,... il le fera sans vous obliger à vous réveiller pour le faire vous-même.
Pour configurer crontab, il suffit de taper crontab -e . Cette commande va lancer un éditeur dans lequel il suffira de préciser à quelle heure et quelle commande nous voulons qu'il exécute.
0 5 * * * /usr/bin/ppp-on # se connecte à Internet. 1 5 * * * /usr/sbin/fetch;/usr/bin/ppp-off # Met à jour le serveur Leafnode local # et coupe la connexion à la fin. 2 5 * * * /usr/sbin/sendmail -q # Envoie le courrier en attente. 1 5 * * * /usr/bin/fetchmail # va chercher le courrier.
Voilà ce qu'affiche mon éditeur lorsque je lance la commande crontab -e .
En fait, la connexion à Internet devient totalement invisible à l'utilisateur. Ses courriers et Usenet sont mis à jour régulièrement sans qu'il soit intervenu dans quelque opération que ce soit.
Cette solution, même si elle s'avère un peu plus compliquée à mettre en place (quoique) se révèle plus simple à l'utilisation que n'importe quel serveur graphique qu'il convient de mettre à jour manuellement.
Usenet est une mine d'informations, d'échanges, de disputes, de
dialogues, ...
aussi complète que l'on puisse trouver. Tout se
transmet ; tout se sait par Usenet.
Il existe deux types de clients Usenet :
Seule la seconde solution est adaptée à notre utilisation d'Internet, parce qu'elle est compatible avec des outils tels que crontab.
Le marché offre un grand nombre de serveurs Usenet : Inn est l'un des plus connus et des plus utilisés. Ce n'est pas le plus simple ; aussi ne vous le conseillé-je pas pour commencer. Leafnode s'avère bien plus aisé à installer puis à administrer. La particularité de Leafnode consiste à s'auto-configurer en permanence et en fonction des groupes lus par les utilisateurs de la machine.
Si son installation paraît facile, Leafnode présente l'inconvénient suivant : il est absolument indispensable d'utiliser une version compilée sur sa propre machine et d'éviter à tout prix un << package >> pré-compilé.
Chargez la dernière version de Leafnode à votre crèmerie
habituelle
(ftp.lip6.fr par exemple) ; recompilez-le et installez-le sur votre
système grâce à la méthode employée par votre distribution. Selon la
distribution en question, vous aurez plus ou moins de données à configurer
manuellement (une RedHat se charge toute seule de presque tout).
Compilez Leafnode, puis installez-le selon les explications fournies dans la documentation. À savoir, vérifiez que l'installation a ajouté la ligne suivante dans le /etc/inetd.conf :
nntp stream tcp nowait news /usr/sbin/tcpd /usr/sbin/leafnode
Ajoutez dans le /etc/bashrc la variable ci-dessous :
export NNTPSERVER=localhost
Ensuite, vous devez vous rendre dans le répertoire /usr/lib/leafnode. Là, vous trouverez le fichier config qu'il suffira d'adapter à votre configuration :
## Cette option sert a déterminer le serveur de news ## où Leafnode doit prendre et poster les articles. ## Vous devez avoir un accès normal à ce serveur. server = news.teaser.fr ## Les articles qui ne sont pas (plus) lus seront expirés, passé ## un certain délai. Indiquez-le en jours ici-même. expire = 10 ## Leafnode sait gérer les kill-files ; indiquez ici quel ## est ce fichier et où il se trouve. filterfile = /usr/lib/leafnode/filters ## ## Tout ce qui se trouve sous cette ligne est optionnel. ## ## Il se peut que votre serveur de news vous demande un ## mot de passe. Pour pouvoir l'utiliser, indiquez-le ici. # username = gulbrandsen # password = secret ## Le port NNTP standard est le 119 ; peut-être que celui ## de votre FAI est configuré autrement. Indiquez-le ici. # port = 8000 ## Vous pouvez utiliser un autre serveur de news pour les groupes ## non disponibles sur le premier et définir un mot de passe et ## un port particulier pour chaque serveur. # supplement = sex.and.warez.com # username = xenu # password = secret ## Ceci est un serveur qui ne comprend pas la commande ## ``LIST NEWSGROUP news.group''. ## Pour cette raison, nous n'essaierons pas de charger la ## description des forums lors de la recherche des ## nouveaux forums. # supplement = broken.upstream.server # nodesc = 1 ## Temps d'expiration non standard # groupexpire comp.os.linux.misc = 5 ; # groupexpire any.local.newsgroup = 100. ## Cette option détermine le nombre maximum d'articles à rapatrier ## pour un forum, lors d'une connexion. maxfetch = 400 ## Cette option détermine le nombre maximum d'articles à rapatrier ## lors du premier chargement d'un groupe. initialfetch = 100 ## Si vous voulez utiliser Leafnode à la manière de ## Free Agent, vous pouvez ne télécharger que les entêtes ## des messages et non les corps. Leafnode ne rapatrie, à la ## connexion suivante, que les messages que vous aurez sélectionnés. ## Cette option ne fonctionne pas très bien avec Netscape. # delaybody = 0 ## Afin d'éviter les Spams, il est possible de déterminer le nombre ## maximum de cross-post dans un message avant de le refuser. maxcrosspost = 4 ## Age maximum d'un article en jours avant de le refuser. # maxage = 21 ## Nombre maximum de lignes dans un article. # maxlines = 100 ## Nombre minimum de lignes dans un article. # minlines = 2
Trois programmes sont utilisés par Leafnode :
Le premier consiste dans le serveur lui-même - celui qui va répondre aux requêtes sur le port 113 de votre propre station, de la même façon que votre fournisseur Internet.
Le second se charge de rapatrier les articles du serveur de votre Fai sur votre station et d'envoyer vos propres articles sur Internet.
Le troisième se charge d'effacer les articles trop anciens. Il est nécessaire de le lancer régulièrement et il est très fortement conseillé d'ajouter la ligne suivante dans le crontab du root ou de l'utilisateur news :
0 3 * * * /usr/sbin/fetch
Ceci afin que toutes les nuits, à trois heures du matin, votre station fasse un peu le ménage dans ses propres articles.
À partir de maintenant, votre serveur local Usenet est configuré. Leafnode va tout d'abord récupérer la liste des forums disponibles puis vous les proposer. Ensuite, il ne chargera que les forums que vous lirez ; il s'adaptera automatiquement à votre demande et mettra à jour de lui-même la liste des forums disponibles.
Une fois installé, Leafnode ne nécessite plus aucune administration. Avec les dernières versions, il se montre même capable de gérer les kill-files et devient de plus en plus véloce. Voilà véritablement un programme idéal pour débuter dans le monde Usenet sous Linux.
L'un des principaux atouts d'internet s'avère sans conteste le << mail >>.
Cousin du courrier postal, le << mail >> a l'avantage d'être plus rapide et bien moins onéreux. Le fait qu'il accepte les pièces jointes et l'utilisation de documents formatés lui permet presque de remplacer le courrier normal. Le cryptage et les programmes tels que Pgp peuvent prouver l'authenticité d'un courrier, de la même manière qu'une signature.
Nous allons étudier dans cette section comment gérer son courrier sur une station Linux.
Vous ne disposez pas d'une connexion permanente au réseau et ne recevez donc pas directement votre courrier sur votre station. Entre l'expéditeur et vous, un serveur est connecté en permanence à Internet ; il accepte votre courrier, le réserve et le tient à votre disposition pour peu que vous respectiez un protocole et fournissiez un mot de passe.
Pour aller chercher votre << mail >> sur ce serveur, vous vous connecterez à Internet et lancerez le programme fetchmail.
Voyons, avant tout, comment configurer fetchmail.
Dans votre répertoire utilisateur, vous devrez placer un fichier contenant un certain nombre d'informations relatives à votre serveur de << mail >>.
## Tout d'abord, l'adresse du serveur de mail qui stocke ## votre courrier. ## Vous pouvez la rentrer soit par son nom, soit directement par ## son adresse Ip. server 194.62.81.72 ## server mail.easynet.fr ## Le protocole utilisé par ce serveur. protocol pop3 ## Votre nom d'utilisateur sur ledit serveur. username JDupont ## Et enfin votre mot de passe. password monpassamoi ## Vous pouvez rentrer d'autres serveurs par la suite.
Ce fichier, à placer dans votre $HOME se nomme .fetchmailrc . En clair, il contient le mot de passe de votre compte << mail >> sur le serveur de votre Fai. Il s'agit d'un trou de sécurité. Ainsi, l'auteur de fetchmail a décidé que son programme ne fonctionnerait pas tant que le .fetchmailrc serait interdit en lecture pour tout autre utilisateur que son propriétaire.
Pour ce faire, nous allons taper la commande suivante :
~$ chmod go-rw .fetchmailrcCeci réduira les droits sur le fichier .fetchmailrc au strict minimum.
~$ ls -l .fetchmail -rw------- 1 elair elair 358 Jan 6 19:04 .fetchmailrc ~$
Afin de vérifier la bonne syntaxe de notre .fetchmailrc , il suffira de taper la commande :
~$ fetchmail --version This is fetchmail release 4.3.4 Linux localhost.localdomain 2.0.36 #3 Fri Jan 1 19:36:07 Taking options from command line and /home/elair/.fetchmailrc Options for retrieving from JDupont@194.62.81.72: True name of server is 194.62.81.72. Protocol is POP3. Server nonresponse timeout is 300 seconds (default). Default mailbox selected. Only new messages will be retrieved (--all off). Fetched messages will not be kept on the server (--keep off). Old messages will not be flushed (--flush off). Rewrite of server-local addresses is enabled (--norewrite off). Carriage-return stripping is disabled (stripcr off). Carriage-return forcing is disabled (forcecr off). Interpretation of Content-Transfer-Encoding is enabled. Nonempty Status lines will be kept (dropstatus off) Messages will be SMTP-forwarded to: localhost (default) Single-drop mode: 1 local name(s) recognized. No UIDs saved from this host.
On se rend bien compte, en lisant le résultat de cette commande, des capacités de fetchmail et de sa configurabilité. Nous ne l'utilisons en fait qu'au minimum de ses capacités et de ses fonctions. Un coup d'oeil sur ses fichiers d'aide vous en dira beaucoup plus long que cette humble documentation.
Envoyer le courrier que l'on a écrit se révèle un sujet très complexe ; l'auteur n'a pas encore achevé cette partie. Nous nous replierons sur les documentations d'Éric Jacoboni et de Jean-Charles Delepine sur http://www.linux-france.com , ou sur le kit de Jussieu, disponible dans toutes les bonnes crèmeries, pour la configuration de sendmail.
Internet est en fait un protocole réseau. En soit, il s'agit simplement de câbles et de concepts destinés à relier entre eux des ordinateurs de toutes sortes, indépendamment des plate-formes ou des systèmes qu'ils utilisent.
Pour trouver un intérêt quelconque à Internet, il faut comprendre la notion de client et cesser de confondre Web et Internet.
Il existe donc un certain nombre de protocoles divers et variés (dont un constitue le Web) ; autour de ces protocoles, des serveurs et des clients.
Ce que nous nommons << logiciel client >> n'est rien d'autre que votre butineur Web ou votre lecteur de news. Nous allons ici dresser une petite liste des principaux clients dans les différents protocoles et en donner les avantages et les inconvénients.
Ou le procole Http (Hyper Text Transfert Protocol).
Netscape s'avère sans doute le plus connu des clients Web ; ce n'est pourtant ni le plus efficace ni le plus stable. Avec une consommation de mémoire effarante et un temps de lancement non négligeable, Netscape a cependant le mérite d'être relativement complet et efficace dans ce qu'il effectue. Inutile pour les butinages de courte durée, instable pour ceux de longue durée, il n'est pas particulièrement recommandé ; mais son caractère << convivial >> peut suffir pour justifier son utilisation.
Arena est un butineur rapide, joli, mais toujours en version béta et toujours aussi fragile aux applications Java et au Html un rien moderne.
Kfm, le << file manager >> de Kde est également un butineur et non des moindres. Produit en permanente évolution (surtout en ce moment), Kfm est un excellent client Web, incomplet mais très largement suffisant pour les butinages légers.
Lynx se révèle la référence en tous points : il est sans conteste le plus rapide, le plus simple, le plus efficace de tous les lecteurs que nous verrons ici. Il ne fonctionne qu'en mode texte, certes, mais il le fait bien et surtout, il évite les longs temps de chargement pour les images de fond et les trop inutiles illustrations.
W3, le butineur de Xemacs est leeeeeent, incroyablement lent. Les calculs pour afficher à l'écran ce que W3 est allé chercher sur le Web le rendent totalement inutilisable sur un P166 avec 80 mo de ram - c'est tout dire.
Ou le protocole Nntp.
Le client Leafnode ne sait pas gérer le nom de domaine comme le fait sendmail. Il apparaît alors indispensable de confier cette tâche au client Usenet. Voyons ci-dessous comment configurer quelques logiciels.
Gnus, le client Usenet de Gnu, s'affirme tel le plus incroyablement complet de tous les clients Usenet que la terre ait porté. Si vous avez pensé à une fonction insolite pour un client Usenet, Gnus sait le faire. Sa richesse de fonctionnalités le désigne comme une référence, malgré sa lenteur. Gnus est livré en standard avec Emacs et Xemacs. Il suffit de lancer l'éditeur puis M-x gnus.
Pour configurer Gnus, il faut éditer le .emacs et le .gnus. Vous trouverez ci-après mes propres fichiers de configuration :
Le .gnus :
(add-hook 'gnus-article-display-hook 'gnus-article-highlight-citation) (require 'gnus-cite) (set-face-foreground 'gnus-cite-face-1 "Red") (set-face-foreground 'gnus-cite-face-2 "SlateBlue") (set-face-foreground 'gnus-cite-face-3 "SteelBlue") (set-face-foreground 'gnus-cite-face-4 "MediumBlue") (set-face-foreground 'gnus-cite-face-5 "Navy")
Ce fichier règle les couleurs des citations.
Le .emacs :
(setq initial-major-mode (lambda() (text-mode) (turn-on-auto-fill))) (setq default-fill-column 72) (setq default-major-mode 'text-mode) (setq text-mode-hook 'turn-on-auto-fill) (standard-display-european t) (setq line-number-mode t) ;; Ci-dessus, quelques variables pour la taille des lignes, ;; la gestion du 8 bit,... ;; Se reporter à une documentation Emacs pour plus d'indications. (custom-set-variables '(user-mail-address "elair@teaser.fr")) (custom-set-faces) (setq user-full-name "Stephane TOUGARD") ;; Ces quelques variables correspondent à notre information sur les ;; champs From et Reply.
Par défaut, Gnus affiche les groupes abonnés qui contiennent des articles non-lus. Pour afficher tous les groupes référencés par .newsrc, il suffit de taper << L >> ; pour afficher tous les groupes disponibles sur le serveur la combinaison de touches << A-A >> nous renseignera ; afin de revenir au mode par défaut, une pression sur << l >> suffira.
Tin est souvent considéré comme le client Usenet type du << barbu >>. Ce préjugé tient à sa grande simplicité, à ses possibilités de fichier de configuration étonnantes et, surtout, à sa rapidité extrême - due notamment à sa légèreté. À conseiller absolument sur les petites machines.
La configuration de Tin se passe dans le sous-répertoire .tin ; la configuration des champs en question se trouve dans le fichier headers. Voici le contenu de mon propre fichier :
# Add extra header lines to mail/news messages. # ie. Organization: Bits & Bobs Inc. From: "Stephane TOUGARD" <elair@teaser.fr> Organization: on peut pas dire ca comme ca
Il est possible, ainsi, de rajouter ou de préciser n'importe quel champ présent dans l'entête.
Il existe également un autre fichier présent dans ce sous-répertoire : tinrc. Il contient toutes les informations relatives à la configuration de Tin.
Il n'est pas vraiment nécessaire de modifier le fichier tinrc , Tin offre une interface pour modifier tinrc. Il suffit de taper << M >> à partir du programme pour que s'affiche une suite d'options simples à modifier.
Afin que Tin utilise le serveur local Leafnode, il convient de le lancer avec l'option << -r >>. Le plus simple consiste à ajouter dans le .bashrc un alias :
alias tin='tin -r'
La configuration du champs Reply: de Netscape s'effectue grâce à la fonction Preferences du menu edit. Là, choisissez la sous-rubrique Mail & groups, puis Identity ; informez le programme des renseignements nécessaires, dans le Mail Server ; apprenez à Netscape que le serveur en question est localhost ; idem pour Group Server .
Référez-vous à la documentation de Netscape pour plus d'informations.
Gnus, encore !!! Eh oui, avec les mêmes avantages et les mêmes inconvénients que dans sa version Usenet.
Mutt est tiré du logiciel Elm ; il s'apparente quelque peu à la lignée de Tin pour Usenet. Ce logiciel léger bénéficie de capacités étonnantes ; mais surtout, il se révèle rapide, très rapide.
Pine (sans doute la référence) utilise un éditeur particulier pour écrire le courrier. Il se configure plus facilement que Mutt, sans être vraiment plus lourd ni plus lent. On aime ou on n'aime pas. À noter que Pine dispose également d'un client Usenet très sommaire.
Netscape, tel Gnus, revient encore...
XFMail, le tout graphique, rend l'utilisation d'un grand écran et d'une souris absolument obligatoire. De première abord assez complexe, ce logiciel s'avère plutôt limité dans ses fonctions et son affichage ralentit son fonctionnement sur les machines un peu anciennes. À conseiller après Netscape et avant un client Mail plus complet.
La hiérarchie fr.* a beau être relativement << propre >>, certains groupes apparaissent un peu trop pollués d'articles publicitaires et quelques personnes s'y expriment d'une manière qui vous déplaît fort. Bref, vous aimeriez que Leafnode sache vous éviter d'avoir à lire (même à charger) des contributions indésirables.
Depuis sa version 1.8, Leafnode sait gérer un kill-file. Il suffit de rajouter dans son fichier config la ligne :
filterfile = /usr/lib/leafnode/filters
Ligne d'ailleurs déjà présente dans notre configuration exemple.
Ensuite, on créera un fichier filtre à l'endroit indiqué, en tapant par exemple :
~# :>/usr/lib/leafnode/filters
Puis, on lui donnera les droits utiles à une bonne utilisation. C'est-à-dire que l'utilisateur news doit être propriétaire et qu'il doit appartenir à un groupe commun avec ceux qui sont autorisés à modifier ledit fichier.
Dans mon cas, mon nom d'utilisateur fait partie du groupe elair ; j'ai donc tapé :
~# chown news /usr/lib/leafnode/filters ~# chrgrp elair /usr/lib/leafnode/filters ~# chmod ug+rw /usr/lib/leafnode/filters ~# chmod o-rw /usr/lib/leafnode/filters
Maintenant, pour éliminer un participant de vos chargements Usenet, il suffit de taper la ligne complète de son champ From: sur une ligne du fichier filters. Voici à quoi ressemble le mien :
From: alex <duralex@mail.dotcom.fr> From: "mi-gso" <MI-GSO.Boulogne@wanadoo.fr> From: cslucki@xcom.fr From: Aquitaine Multimedia <contact@aquitaine-multimedia.com> From: information@imidia.com From: pasdepubstemagat@worldnet.fr From: Jack <jwarot@volumes.fr> From: "Webtoul" <webmaster@toulouse-pratique.com> From: Pascal GENTIL <p_gentil@neotown.com> From: "Pierre" <fleurypierre@bluewin.ch> From: anonyme <anonyme@lori1-217.abo.wanadoo.fr> From: prin <prin@montpellier-immo.com> From: lemarec@iname.com From: berluti <christian.berluti@abanastes.com> From: <@wanadoo.fr> From: "jean-charles" <roch36@club-internet.fr>
Pour permettre une saisie plus simple des lignes dans le fichier filters, voici un petit script sous Perl. Installez-le dans votre $PATHrendez-le exécutable ; lancez-le et tapez << help >> à l'invite.
#!/usr/bin/perl ################################################################## # # Définition des variables # $editor = "vi"; $file = "/usr/lib/leafnode/filters"; $ver = "0.02"; ################################################################## # # Ce programme sert à gérer le fichier /usr/lib/leafnode/filters # while($commande ne "quit"){ $commande = &input("Filter ver $ver \$"); if($commande eq "help"){ &help; } if($commande eq "voir"){ &voir; } if($commande eq "add"){ &add; } if($commande eq "zero"){ &zero; } if($commande eq "edit"){ &edit; } } ################################################################## # # Sous-programmes. # sub input{ $var = ""; print("$_[0] : "); while($var eq ""){ $var = <STDIN>; } chop($var); return $var; } sub help{ print("'quit' quitte le programme\n"); print("'help' affiche cet écran d'aide\n"); print("'voir' affiche la liste des adresses non acceptées\n"); print("'add' ajoute une adresse dans la liste\n"); print("'zero' remet le fichier à zéro\n"); print("'edit' édite le fichier \n"); } sub voir{ print("\n"); open(IN,"</$file") or die("Le fichier $file n'existe pas\n"); while(<IN>){ print("$_"); } close(IN); print("\n"); } sub add{ $add = &input("Quelle adresse voulez-vous rajouter"); open(OUT,">>$file") or die ("Le fichier $file n'existe pas\n"); print OUT"From: $add\n"; close(OUT); &voir; } sub zero{ open(OUT,">$file") or die ("Le fichier $file n'existe pas\n"); print OUT""; close(OUT); } sub edit{ system("$editor $file"); }
Attention, la version de Leafnode ne supporte pas une ligne vide dans le fichier filter : ceci a pour conséquence de tuer tous les articles. Faites donc attention en éditant ce fichier.
Dans le déplacement des courriers électroniques, il existe un acteur dont nous n'avons pas encore parlé : Procmail.
Procmail est un programme très puissant et ,surtout, très configurable. C'est grâce à lui que nous allons pouvoir rediriger les courriers électroniques en fonction de leur entête.
Procmail se configure au niveau de la machine via le fichier /etc/procmailrc et au niveau de chaque utilisateur via le fichier ~/.procmailrc. Voici un court exemple de ce fichier :
# Envoie tous les posts de Martin à la poubelle :0: * ^From.*martin /dev/null # redirige les post de la mailing list de FreeBSD # vers un fichier :0: * ^To.*freebsd-france@freebsd.francenet.fr /home/elair/Mail/freebsd-france
De prime abord, la syntaxe d'un fichier de configuration pour procmail ne paraît pas évidente. Or, cette documentation ne la décortiquera pas (lire les << man >> correspondants). Grosso modo, sachez tout de même que la première ligne ouvre l'action ; la seconde pose les condition pour que l'action se réalise et la troisième est l'action (dans notre cas, nous nous contentons de rediriger des courriers vers des fichiers).
Pour simplifier la gestion d'un kill-file sélectionné sur les auteurs des courriers, voici un petit script qui vous demandera quel intervenant vous souhaitez ne plus lire et qui configurera procmail pour qu'il agisse en conséquence. Ce script ne gère que les kill-file selon auteur ; mais libre à vous de le reconfigurer selon vos besoins.
#!/usr/bin/perl # Ce programme sert à automatiser la procédure de # création d'un kill-file # pour le courrier electronique. # Ce programme doit etre lancé depuis le répertoire home. # Cette variable est à modifier en fonction de l'endroit où vous # voulez envoyer ou sauver les mails que vous ne désirez pas lire. # Pour des raisons de sécurité, il est préférable de les sauvegarder # dans un fichier où il sera toujours possible de vérifier que # procmail ne fait pas de bêtises. $killed = "/home/elair/Mail/killed"; $add = ""; while($add eq ""){ print("Quelle adresse voulez-vous ``killer'' : "); $add = <STDIN>; chop($add); } open(OUT,">>.procmailrc"); print OUT":0:\n* ^From.*$add\n$killed\n\n";
Contrairement au kill-file de Leafnode, vous n'êtes pas obligé de rentrer la ligne complète. Si vous indiquez << martin >>, procmail éliminera tous les << martin >> ; mais si vous précisez << martin@altern.org >> procmail n'éliminera pas << martin@teaser.fr >> (par exemple).
Il est des groupes très techniques ou plaisants dont il s'avèrerait dommage de ne lire qu'une fois les articles tant ils peuvent se révéler utiles à l'avenir.
Pour relire les articles d'un groupe, archivons-les.
Nous allons étudier ici une solution pour archiver un forum. Cette solution n'est pas la seule existante. Il s'agit simplement d'une possibilité parmi d'autres.
C'est le groupe fr.comp.os.linux.moderated que nous allons archiver. Afin d'en faciliter le traitement ultérieur, nous l'archiverons au format Mail. Pour ce faire, nous redirigerons la totalité des contributions vers notre adresse électronique. Le programme Tin se chargera de cette tâche.
La première étape consiste à créer un fichier .newsrc.mail qui contiendra les fichiers à archiver. Pour le créer et le configurer, il suffit de lancer :
~$ tin -f .newsrc.mail
puis de s'abonner au groupe fr.comp.os.linux.moderated.
Maintenant, après étude des options de Tin, on constate que l'option -M envoie tous les nouveaux articles à une adresse mail, que l'option -c marque ces derniers dès qu'ils sont lus. Ceci revient à dire que, rajouter la ligne :
0 9 * * * tin -f ~/.newsrc.mail -m user -c -r
postera tous les nouveaux articles du groupe à la boîte aux lettres de user.
Il faut maintenant rediriger ces articles vers un fichier : à procmail de jouer. En ajoutant l'option suivante dans le .procmailrc :
:0: * ^Newsgroup.*fr.comp.os.linux.moderated /home/elair/fcolmtous les articles iront droit se loger dans le fichier fcolm.
Il devient ainsi possible, à partir de cette archive, de lire les articles précédents grâce à mutt avec l'option -f, ou de lancer des traitement de statistiques avec Perl, ou encore de gérer simplement une Faq.
Dans le ~/.procmailrc , un ordre se découpe en trois parties bien distinctes. Le mail va traverser toutes ses parties et être traité selon les ordres donnés et selon des critères établis.
:0 c: * ^From.*elair@teaser.fr |essai :0: * ^To.*freebsd-france@freebsd.francenet.fr /home/elair/Mail/freebsd-france :0 * ^From.*WEBMASTER !hubert@domaine.com
Le .procmailrc ci-dessus comporte trois filtres distincts - soit trois ordres particuliers. Nous observons que la première ligne de chaque filtre est différente selon les cas. Étudions ces différences.
Le premier caractère, celui qui sert à ouvrir un nouveau filtre, est le << : >> . Celui-ci indique à Procmail qu'il va lancer un nouveau filtre, avec une nouvelle sélection et un nouvel ordre à la clef.
Je n'ai pas d'explication particulière concernant le << 0 >>, si ce n'est qu'il est suivi de ce que l'on nomme un << drapeau >>. Ce drapeau peut indiquer bon nombre d'éléments. Dans notre exemple, le premier filtre en comporte un : il s'agit du << c >>, qui donne ordre à Procmail de filtrer une copie carbone du mail et de laisser passer l'original. Il se servira de cette copie pour user du traitement du filtre.
Voici les différentes possibilités :
Les deux point << : >> qui suivent le drapeau signifient à Procmail l'utilité de gérer un fichier bloquant. Expliquons ce point mystérieux. Si vous décidez, comme c'est le cas au second filtre, de renvoyer les articles d'une mailing-list vers un fichier local, il n'est pas de bon ton d'avoir des accès concurrents sur ledit fichier. Procmail va donc générer un locallockfile pour indiquer qu'il écrit dans le fichier en question. Ce qui a pour effet de ralentir la procédure mais de garantir le résultat. Votre serviteur vous conseille de toujours utiliser cette option.
La seconde ligne (et les suivantes jusqu'à l'ordre, ou pipe) est la << condition >>. En d'autres termes, Procmail agira sur les courriers en fonction des conditions édictées dans cette ligne. Cette ligne s'amorce par une << * >> : cela veut tout simplement dire qu'il faut respecter la condition suivante. Mais elle peut commencer par d'autres signes qui bénéficient chacun d'une définition bien particulière :
Lorsque nous effectuons une recherche sur l'un des champs de l'entête, il convient de le préciser en marquant le champ en question et en précisant qu'il se trouve en début de ligne. C'est pourquoi nous avons placé un << ^ >> avant le from de notre requête. Quant aux autres des conditions de recherche, je ne peux conseiller meilleur indicateur que le man de egrep qui fournira avec succès les critères de recherche.
La dernière partie du filtre indique ce qu'il faut faire du courrier. S'il répond aux conditions, le courrier pourra être redirigé vers un fichier en notifiant tout simplement le nom et le chemin du fichier. On peut également renvoyer un courrier vers une autre adresse mail : il suffit de débuter la ligne avec << ! >> et de préciser la nouvelle adresse.
Enfin, le plus intéressant du lot concerne très certainement la possibilité d'envoyer un courrier vers un script tout fait. Cette opération requiert de commencer par un << | >> puis de marquer le nom du programme ou du script qui va prendre en main le courrier.
Notons qu'il est loisible de définir plusieurs options de recherche avec Procmail. Il suffit de les faire suivre. Ainsi :
:0: *^From.*michel *^To.*Freebsd /dev/null
Tous les courriers dont l'expéditeur est << michel >> et dont le destinataire est << Freebsd >> seront redirigés vers... la poubelle.
1 gpm est un daemon qui sert à gérer la souris sur le mode <<console>>, il n'est pas particulièrement utile dans le cadre d'une utilisation de Linux sous X ou si les <<copier-coller>> ne sont pas vos jeux favoris en mode texte