Une erreur à corriger, une suggestion à faire, une contribution à apporter ?
N'hésitez-plus ! Just write it!
9.1 Niveaux de démarrage
-
Georges Mariano
(traduction "adaptée" de
/usr/share/doc/sysvinit/README.runlevels.gz)
9.1.1 Généralités
Tout les scripts exécutés lors de l'initialisation du système sont
situés dans /etc/init.d. Les répertoires /etc/rc?.d (? = S, 0..6)
contiennent des liens symboliques vers ces scripts. Ces scripts sont
nommés de la manière suivante : S<2 chiffres><nom> (S pour "S"tart/début) ou K<2
chiffres><nom> (K pour "K"ill/arrêt).
(Exemple )
Si le nom d'un script est suffixé ".sh", le script est un "bourne
shell" et peut être utilisée de manière optimale. Le comportement de
l'exécution optimale n'est différent en aucune manière de celui d'une
exécution normale.
Les niveaux de démarrage (runlevels) suivants sont définis :
| N |
Démarrage du système (bootup/ "N"ONE) |
| S |
Mode utilisateur unique ("S"ingle user) |
| 0 |
Arrêt (halt) |
| 1 |
Mode utilisateur unique |
| 2..5 |
Mode multi-utilisateurs |
| 6 |
Redémarrage (reboot) |
Le niveau de démarrage correspondant est "N" (none ou bootup).
Lorsque le système s'initialise, les scripts de /etc/init.d/rcS sont
exécutés. Ce qui se traduit par l'exécutions
des scripts dénommés S* par ordre alphabétique (c'est à dire
numérique!) . Les scripts sont exécutés avec
comme premier argument
'start'.
9.1.3 Passage multi-utilisateurs
Après les exécutions précédentes, 'init' bascule vers le niveau de
démarrage par défaut spécifié dans /etc/inittab
, en
général le niveau 2 (multi-utilisateurs).
Le programme 'init' exécute alors le script /etc/init.d/rc qui se
charge de démarrer les services définis dans /etc/rc2.d par des
scripts dénommé S<2 chiffres><nom>
Ici encore, les scripts sont exécutés par ordre alphabétique avec
comme premier argument 'start'.
9.1.4 Changement entre niveaux
Lorsque l'on change (par exemple) du niveau 2 au niveau 3,
/etc/init.d/rc exécute
-
d'abord tous les scripts d'arrêt pour le
niveau 3 (les scripts /etc/rc3.d/Knn<nom>) avec le premier argument
'stop',
- ensuite tous les scripts de démarrage du niveau 3 (les scripts
/etc/rc3.d/Snn<nom>) avec le premier argument 'start'.
9.1.5 Lancer un script lors du démarrage
Plusieurs solutions :
-
-
placer le script dans /etc/init.d/rc.boot
-
placer le script dans /etc/init.d
- puis utiliser update-rc.d
-
étudier l'exemple /etc/init.d/skeleton
- puis utiliser update-rc.d
Application :
Appliquer au démarrage des paramètres d'
optimisation des accès disques (hdparm
).
-
créer le fichier
/etc/init.d/hdparm.sh
et y placer les commandes de
réglage des périphériques
- mettre les droits d' exécution :
| chmod |
755 /etc/init.d/hdparm.sh |
- dans notre cas, on veut
-
exécuter le script
/etc/init.d/hdparm.sh
à
chaque démarrage. On a donc besoin d'un lien
symbolique dans le répertoire
/etc/rcS.d
- ensuite, nous voulons que le
script s'exécute vers la fin de la série ; nous lui
donnerons donc le numéro d'ordre 60 par exemple. Enfin, le nom du lien
doit commencer par la lettre S.
- créer le lien symbolique, en passant par le script Debian
update-rc.d :
NB
L' installation des paquets hwtools
,
hdparm
suggère le nom hwtools
(au lieu de hdparm.sh
comme
ci-dessus).
Ce nom est effectivement plus générique, et le fichier exemple
fourni comporte plusieurs sections
.95
#!/bin/sh
#
# /etc/init.d/hwtools (previously /etc/rc.boot/hwtools)
#
# Optimize interrupts. You might want to add parameters if you want
# to favor ttyS1 or ttyS0 or something else.
if command -v irqtune >/dev/null 2>&1; then
# irqtune [PUT ARGS HERE]
true
fi
# hdparm optimization
# Switches on interrupts during transfers and does multi sector transfers
if command -v hdparm >/dev/null 2>&1; then
# hdparm -q [PUT ARGS HERE]
true
fi
# configure QIC-02 interface
# see qic02conf(8)
# qic02conf --card= --port= --dma= --irq=
9.1.6 En savoir plus
9.2 Service NTP
-
Frédéric Massot
(avril 2002)
9.2.1 Le protocole NTP
NTP est un protocole permettant aux
ordinateurs reliés en réseau de ce synchroniser par rapport à une
machine de référence. La précision de la synchronisation est de l'ordre
de la dizaine de milli-seconde pour un serveur de strate 3.
Il y a plusieurs méthodes pour mettre en place cette machine de
référence :
-
Connection à un récepteur GPS pour se synchroniser aux horloges
atomique des satellites du système GPS.
- Connection à une horloges pilotées par des émetteurs de
radio-diffusion publiques, comme celui de TDF diffusant France Inter
- Connexion à une horloges pilotées par des signaux radio émis par des
émetteurs spécialisés.
- Connexion via l'internet à un serveur NTP publique.
Ici, nous nous intéresserons à ce dernier cas.
Un réseau de serveurs NTP est constitué en strates :
-
Les serveurs primaires, strate 1 (stratum 1) sont directement reliés à
une référence de temps (récepteur GPS, récepteur radio, horloge
atomique, ...);
- Les serveurs secondaires, strate 2 (stratum 2) se synchronisent aux
serveurs de strate 1 via le protocole NTP;
Pour mettre en place un serveur NTP au sein de votre réseau local, il
est important pour bien répartir la charge sur les serveurs NTP
publiques de vous placez sur la strate 3. C'est à dire de se synchroniser
aux serveurs NTP publiques de strate 2.
Les machines de votre réseau local se synchroniseront sur ce
serveur NTP de strate 3.
Il est recommandé de se synchroniser sur trois serveurs. Si la
synchronisation sur un des serveurs échoue, votre serveur NTP en utilisera
un autre.
Il est souvent conseillé (par politesse :-) ) d'envoyer un petit mail à
l'administrateur du serveur NTP sur lequel on se synchronise.
9.2.2 Mise en place
Il existe pour la distribution Debian version Potato trois paquets pour
installer un client et/ou un serveur NTP ; Pour la Woody, il y en a cinq
car le paquet ntp a été découpé en trois paquets1.
Le paquet ntp-doc
Installe une documentation complète (en HTML) sur les paquets ntp et
ntpdate dans le répertoire /usr/share/doc/ntp-doc
Le paquet ntpdate
Installe le client ntpdate et les pages de manuel.
synchronise brutalement l'horloge système (option -b).
Il peut être utile lors de décalage trop important, le daemon ntpd
refusant alors de se synchroniser.
ntpdate est aussi utile pour les connexions intermittentes.
-
== ajustement progressif
-
== ajustement brutal
Le paquet ntp (version Potato)
Installe le client/serveur ntpd, le script de lancement, les scripts de
rotation des logs, divers outils de contrôle et de debugage, et les
pages de manuel.
Lors de l'installation un écran vous demande de saisir le nom des
serveurs ntp sur lesquels vous voulez vous synchroniser.
Toute la configuration est dans /etc/ntp.conf
.
A la fin de l'installation, le daemon ntpd est lancé. On peut s'en
apercevoir à l'aide de la commande
root 359 ... SL ... /usr/sbin/ntpd
Le "L" indique que le daemon est bloqué en RAM, il ne sera jamais swapé,
n'oubliez pas que ntp doit synchroniser la machine à quelques
milli-secondes prêts.
Le daemon ntpd synchronise la machine progressivement, sans perturber le
système, il accélère ou ralentie l'horloge système.
Cette synchronisation prends plus d'un quart d'heure.
Si le décalage est trop important, le daemon ntpd refusera de
synchroniser l'horloge système, il sera alors nécessaire d'utiliser le
client ntpdate.
Le paquet ntp (version Woody) :
Installe divers outils de contrôle et de debugage, et leurs pages de
manuel.
/usr/bin/ntpq
/usr/bin/ntpdc
/usr/bin/ntptrace
/usr/bin/ntpsweep
/usr/sbin/ntp-wait
/usr/sbin/ntptime
/usr/sbin/tickadj
/usr/sbin/ntp-genkeys
Le paquet ntp-simple (version Woody) :
Installe le client/serveur ntpd sans les drivers pour les horloges
radio. Installe aussi le script de lancement, les scripts de rotation
des logs, et la page de manuel du daemon ntpd.
Le paquet ntp-refclock (version Woody) :
Installe le client/serveur ntpd avec les drivers pour les horloges radio
ou d'autres périphériques de synchronisation horaires. Installe aussi
le script de lancement, des scripts de rotation des logs, et la page de
manuel du daemon ntpd.
Configuration du daemon ntpd
# /etc/ntp.conf, configuration for ntpd
# ntpd will use syslog() if logfile is not defined
# Fichier d'historique
logfile /var/log/ntpd.log
# Fichier contenant la deviation moyenne
driftfile /var/lib/ntp/ntp.drift
# Repertoire contenant les statistiques d'utilisation
statsdir /var/log/ntpstats/
# Statistiques desirees
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
# Liste des serveurs NTP de référence
server ntp.via.ecp.fr
server ntp.obspm.fr
server ntp.univ-lyon1.fr
Pour l'utilisation du protocole NTP au sein d'un réseau local,
l'utilisation de la directive "broadcast adresse_broadcast" pour le
serveur permet de transmettre les paquets de synchronisation en
broadcast.
On utilisera la directive "broadcastclient" pour les clients.
La précision est un peu plus faible en broadcast.
Pour les clients :
# /etc/ntp.conf, configuration for ntpd
# ntpd will use syslog() if logfile is not defined
# Fichier d'historique
logfile /var/log/ntpd.log
# Fichier contenant la deviation moyenne
driftfile /var/lib/ntp/ntp.drift
# Repertoire contenant les statistiques d'utilisation
statsdir /var/log/ntpstats/
# Statistiques desirees
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
# Liste des serveurs NTP de référence
server ntp.via.ecp.fr
server ntp.obspm.fr
server ntp.univ-lyon1.fr
Configuration du client ntpdate
Décommentez une ligne dans le fichier "/etc/init.d/ntpdate".
9.2.3 Le protocole ntp et les firewalls
Le protocole ntp utilise pour la synchronisation le port UDP/123.
Le daemon ntpd ce connecte du port UDP/123 vers le ou les serveurs de
références sur leurs ports UDP/123.
La règle suivante pour iptables permet au serveur NTP interne de se
synchroniser à un serveur NTP de référence extérieur :
# Autoriser l'acces au serveur NTP numéro 1 (UDP 123)
iptables -A FORWARD -i $INTERNAL_INTERFACE -o $EXTERNAL_INTERFACE
-p udp
-s $SERVEUR_NTP_INTERNE --sport 123
-d $NTP_SERVEUR_REFERENCE_1 --dport 123
-m state --state NEW -j ACCEPT
Cette règle ne permet pas les connexions de l'utilitaire ntptrace vers
l'extérieur. ntptrace ce connecte d'un port UDP non privilégié
(supérieur à 1024) vers le ou les serveurs de références sur leurs ports
UDP/123.
9.2.4 Vérification et debugage
Le premier point à vérifier, est que le daemon ntpd fonctionne.
Un simple "ps aux |grep ntp" suffit, vous devez obtenir une ligne
de la forme :
root 359 ... SL ... /usr/sbin/ntpd
Puis vous pouvez utiliser les utilitaires ntptrace et ntpdc du paquet
ntp.
La synchronisation prend un peu de temps, il ne faut pas essayer ntpdc
juste après avoir lancé ntpd.
L'utilitaire ntpdc permet d'obtenir une foultitude d'informations sur
l'état du daemon ntpd.
Par défaut, ntpdc se connecte à la machine locale. La commande host
de ntpdc permet de se connecter à une autre machine, par exemple un
serveur, si le serveur l'autorise.
La commande help de ntpdc est très utile.
Pour le debugage regardez aussi dans les logs. Ils indiquent les dérives
et les corrections apportés, le syslog indique la perte de
synchronisations en cas de coupure de la connexion Internet.
Le paquet chrony
présente une autre implémentations
du même protocole.
On peut même mettre un démon chronyd et un démon ntpd (sur deux
machines différentes) en peers l'un de l'autre sans problème (je
précise juste au V4 que l'autre est V3).
Les différences se font sur la façon dont l'horloge RTC du pc est
gérée et sur la prise en compte des connexions intermittentes. Pour la
partie NTP elle même, les algorithmes implémentés sont ceux décrits de
manière détaillée dans le RFC.
Pour le fichier de conf, celui proposé par le mainteneur du paquet est
bien fait, il y a juste à préciser le(s) serveur(s) que l'on souhaite
utiliser et une ou deux lignes à décommenter si on veut utiliser
/dev/rtc.
Le pendant de ntpdc est chronyc. Il n'y a pas, sauf erreur,
d'équivalents de ntpq et ntptrace. La documentation est au format info au lieu
d'être en HTML et chrony prend en compte la gestion des connexions
intermittentes ce qui le rend particulièrement adapté au cas des
utilisateurs de ppp.
Voilà l'essentiel des différences impactant
l'utilisateur du paquet. Si on regarde en détail,
-
chrony n'est pas porté sur autant de plateformes que ntpd,
- il n'utilise probablement pas l'API PPS,
- sait-il utiliser un noyau gérant les nanosecondes ?
- il ne gère pas les références matérielles
mais tout ceci
ne concerne pas la personne qui installe et configure le serveur et
encore moins celui qui veut juste synchroniser une machine.
9.2.6 Cas pratique
Un serveur local S (i.e de sous-réseau) maître de plusieurs clients Ci. Tous en connexion permanente.
|
| |
Rôle |
Paquets |
Remarques |
|
|
| S |
serveur local |
ntp, ntpdate |
à synchroniser sur plusieurs serveurs NTP externes, proches (hop/ping) |
| Ci |
client fixe |
ntp, [ntpdate] |
à synchroniser sur A |
|
Auto-synchronisation NTP
Un bon truc pour faire un serveur qui répond même si les supérieurs
sont injoignables (utile si la connectivité est défaillante) :
# Synchronize on myself (127.127 = myself, 1 = local clock)
server 127.127.1.0
# Stratum 10 (arbitrary)
fudge 127.127.1.0 stratum 10
9.2.8 Pour en savoir plus...
9.3 Service CUPS
-
Frédéric Massot
- Josselin Mouette
9.3.1 Le modèle client-serveur de CUPS
CUPS (Common Unix Printing System) fonctionne sur le principe du
client et du serveur cher à Unix.
Toutefois, il n'utilise pas le vieillissant protocole d'impression de
lpd, mais un nouveau procédé nommé IPP (Internet Printing
Protocol). Il permet une bien plus grande souplesse, tout en
réduisant la charge requise pour une impression au niveau du client.
L'agencement des paquets dans Debian est le suivant :
Côté serveur
Le paquet qui contient le serveur CUPS est cupsys
.
Il comprend le serveur d'impression et l'interface web (qui sont en
fait une seule et même chose, IPP étant basé sur HTTP). L'ensemble
accepte les connexions sur le port 631.
Par contre, ce serveur est fourni avec très peu de drivers, et qui, à
part le driver PostScript, ne serviront pas aux possesseurs
d'imprimantes récentes. Il est donc conseillé d'installer un duo de
paquets contenant à eux deux des drivers de très bonne qualité pour
quasiment toutes les imprimantes du marché :
cupsys-driver-gimpprint
et
cupsomatic-ppd
.
Certaines imprimantes sont gérées
par les deux drivers, à vous de choisir celui qui vous convient le
mieux : gimp-print est un peu plus lent, mais la sortie est de
meilleure qualité pour les images bitmap.
Côté client
Une fois un serveur disponible, les machines clientes se contentent de
s'y connecter pour envoyer un fichier à imprimer et n'ont donc besoin
que des paquets suivants :
-
cupsys-client
pour les commandes System V (lp,
lpstat, cancel) et
- cupsys-bsd
pour les commandes BSD (lpr, lpq,
lprm).
9.3.2 Installation rapide
Pour faire très rapide, la mise en place d'une imprimante sous CUPS
requiert :
-
l'installation des paquets
- d'aller sur http://localhost:631/printers
et de cliquer
sur « Add printer » ;
- de se loguer en root avec le navigateur puis de suivre les
instructions.
Ensuite, l'imprimante que vous aurez configuré sera opérationnelle via
la commande lpr, qui est aussi utilisée de manière
transparente par les applications.
9.3.3 Configuration d'une imprimante
Accéder à http://localhost:631/admin/?op=add-printer
pour
effectuer l'installation d'une imprimante sur le serveur par
l'interface web.
Il faut commencer par entrer un nom. Celui-ci n'a d'importance que si
vous configurez plusieurs imprimantes ; il apparaît dans les options
des programmes d'impression, ou dans l'option -P de
lpr.
Ensuite, pour faire les choses proprement et complètement, vous avez
la possibilité de saisir un emplacement et une description.
Les caractéristiques logiques et physiques des imprimantes seront
définies dans les pages de saisie suivantes...
Une imprimante locale
Page suivante, il faut choisir un protocole d'impression sur le port
parallèle
. Des protocoles spéciaux sont proposés pour les imprimantes de
marques Epson ou Canon. Ensuite, à l'écran suivant on entre la marque
de l'imprimante, et au dernier, son modèle.
Une imprimante locale en port USB
Il nécessaire d'avoir inclut dans le noyau le support pour l'USB :
-
Preliminary USB device filesystem
- Le support du controleur USB idoine : USB Controllers
- USB Printer support
Ensuite, installer le paquet hotplug
, les scripts
qu'il contient permettent une gestion transparente des périphériques hotplug.
La configuration de l'imprimante se déroule via le menu de CUPS à
l'adresse :
http://localhost:631/admin/?op=add-printer
La configuration est identique quelque soit le type de connectique
reliant l'imprimante au serveur CUPS, USB, série, parallèle.
Choix des drivers
Parfois, plusieurs drivers sont proposés pour la même imprimante, par
exemple un driver cupsomatic et un driver gimp-print. Vous pouvez
faire des essais pour voir ce qui vous convient le mieux. Pour les
imprimantes Epson, le driver gimp-print offre une qualité supérieure,
pour les autres à vous de voir.
Après ça, l'imprimante est prête à fonctionner.
Vous pouvez
-
imprimer une page de test
- ou cliquer sur Configure printer pour régler les
options d'impression par défaut :
-
résolution,
- taille du papier (en France, c'est A4),
- options graphiques (si vous utilisez gimp-print, l'option
Adaptative Hybrid) est recommandée)
- ...
Toutes les options de configuration peuvent être ensuite
personnalisées par chaque utilisateur (dans son environnement).
9.3.4 Imprimer sur un serveur
Serveur CUPS distant
Sur chaque client GNU/linux, éditer le fichier
/etc/cups/client.conf
et indiquer le nom du serveur CUPS (directive ServerName).
Serveur LPD distant
Si vous voulez imprimer sur un serveur Unix utilisant LPD ou sur une
imprimante en réseau compatible avec ce protocole, il faut choisir le
protocole LPD/LPR. Par la suite, il vous est demandé une URI,
de la forme
lpd://serveur/imprimante
Le point épineux est le modèle. S'il s'agit d'une imprimante
Postscript réseau, sa marque et son modèle sont en général présents,
sinon choisissez une imprimante PostScript générique (par exemple, HP
Laserjet ou Color Laserjet quelquechose + Postscript). S'il s'agit
d'un serveur LPD, il faut déterminer ses capacités. La plupart
n'acceptent que le Postscript, auquel cas il faut utiliser là aussi un
driver Postscript générique.
Serveur Windows distant
Pour imprimer vers une imprimante partagée par un serveur NT, le
serveur CUPS utilise samba, et plus précisément le programme smbspool
disponible dans le paquet smbclient
.
L'imprimante doit donc être installée avec une adresse de la forme :
smb://login:password@GROUP/serveur/imprimante
(login, password, et GROUP sont optionnels).
Ensuite, il faut impérativement sélectionner le driver de l'imprimante
située à l'autre bout du serveur, car Windows ne fait pas de
retraitement.
Plusieurs personnes signalent des problèmes en imprimant vers des
serveurs Windows 2000 ou Windows NT, engendrant dans
http://localhost:631/printers/
des messages d'erreur du type
CUPS Unable to connect to SAMBA host
En attendant que ce problème soit réglé dans samba, il est possible
d'imprimer en remplaçant le fichier smbspool par celui que vous
pourrez trouver sur
http://people.debian.org/~joss/misc/smbspool
.
Astuce
Si l'impression ne fonctionne pas, essayer d'abord d'imprimer un
simple fichier texte directement en utilisant smbspool (cf man
smbspool pour les arguments, tout les arguments sont obligatoires).
Les classes d'imprimantes
Les classes d'imprimantes ne sont pas très utiles au tout-venant, mais
sont indispensables dans certaines circonstances.
Imaginez que vous ayiez une batterie de 12 imprimantes dans un local
dédié et qu'une centaine de personnes s'en servent. Vous voulez donc
répartir la charge. Il serait trop compliqué d'associer une imprimante
à chaque utilisateur, et pas très pratique de laisser l'utilisateur
choisir (suivant quels critères ?).
CUPS apporte une solution très simple avec les classes.
Allez sur
http://localhost:631/classes
et cliquez sur « Add Class ». Il
vous est alors demandé le nom de la classe, telle qu'elle apparaîtra
(à savoir comme une autre imprimante), puis le nom des imprimantes à
associer à cette classe. Par la suite, les travaux d'impression
envoyés sur l'imprimante virtuelle qui représente cette classe seront
répartis entre les différentes files d'attente de manière à répartir
la charge.
9.3.5 Impression à partir de clients non UNIX
Client Windows 95 ou Windows 98
L'impression à partir de ces OS requière la présence sur le serveur CUPS
du serveur SAMBA (paquets samba-common et samba).
L'impression s'effectue en mode "raw".
C'est à dire que Windows par l'intermédiaire des pilotes
d'impressions génère un fichier directement compréhensible par
l'imprimante. Windows communique ce fichier au serveur Samba,
qui le transmet à CUPS. CUPS l'envoie à l'imprimante en mode "raw".
Dans le fichier
/etc/samba/smb.conf
, vous devez avoir les paramètres
suivants :
[global]
printing = cups
printcap name = /etc/printcap.cups
load printers = yes
[printers]
comment = All printers
browseable = yes
path = /tmp
printable = yes
public = yes
writable = yes
create mode = 0700
guest ok = yes
Dans le fichier
/etc/cups/mime.convs
, vous devez avoir la ligne suivante
décommantée :
application/octet-stream application/vnd.cups-raw 0 -
Dans le fichier
/etc/cups/mime.types
, vous devez avoir la ligne suivante
décommantée :
application/octet-stream
Sur le poste Windows aller dans le panneau de gestion des imprimantes,
et cliquer sur "ajouter une imprimante".
Selectionner une imprimante en réseau et suivre les instructions.
Cette installation requière les pilotes d'impression pour Windows.
Parfois, les pilotes d'impression refusent de comprendre que
l'imprimante est distante, ils ne fonctionnent que lorsque l'imprimante
est reliée directement au poste client.
La solution, est d'utiliser un pilote générique Postscript, ce pilote
est disponible à l'adresse :
http://www.adobe.com/support/downloads/main.html#Printer
Il est à remarquer que ce pilote fonctionne parfois mieux avec CUPS que
les pilotes d'impression natifs.
Ce pilote génère un fichier postscript niveau 2 ou 3 compréhensible par
CUPS.
Le fichier téléchargé sur le site d'Adobe est un executable pour
Windows.
Ce programme permet de selectionner une imprimante réseau, visible via
le serveur Samba.
Il installe et configure les pilotes d'impressions pour Windows.
Client Windows 2000 ou Windows XP
Windows 2000 et Windows XP savent gérer de façon native le protocole
IPP. L'installation nécessite les pilotes d'impressions pour Windows
2000 ou XP.
L'installation d'une imprimante distante s'effectue via le panneau de
configuration des imprimantes.
Il faut cliquer sur "ajouter une imprimante", selectionner une
imprimante en réseau et suivre les instructions.
Le problème est que si on fournit le chemin de l'imprimante distante tel
quel, Windows ne la detecte pas.
Exemple de chemin d'imprimante :
http://monserveur:631/printers/monimprimante
La solution est d'ajouter l'imprimante dans une classe et de fournir à
Windows le chemin de la classe :
http://monserveur:631/classes/maclasse
(Alexandre Ratti) Ce bug est apparemment corrigé par le Service
Pack 1.
Client Macintoch (version 9)
L'impression à partir d'un Mac nécessite la présence sur le serveur CUPS
du serveur NETATALK (paquet netatalk). Linux doit être compilé avec le
support réseau "Appletalk protocol support".
L'impression s'effectue en mode "raw" (cf. Impression d'un client
Windows 95 ou 98).
Dans le fichier /etc/netatalk/papd.conf, vous devez configurer chaques
imprimantes (exemple pour une imprimante Brother) :
Brother:\
:pr=|/usr/bin/lpr -P Brother:\
:op=lp:\
:pd=/etc/cups/ppd/Brother.ppd:
Sur le Mac, vous devez télécharger les drivers génériques Postscript
fournit par Adobe, à l'adresse :
http://www.adobe.com/support/downloads/main.html#Printer
Le fichier téléchargé sur le site d'Adobe est un executable pour
Macintoch.
Ce programme permet de selectionner une imprimante réseau, visible via
le serveur Netatalk.
Il installe et configure les pilotes d'impressions pour Macintoch.
Ces pilotes génèrent des fichiers postscript niveau 2 ou 3
compréhensible par CUPS.
Client Macintoch (version X)
Apple a acheté une license pour CUPS auprès de Easy Software Products .
CUPS est intégré dans MacOS X version 10.2.
Je n'ai à l'heure actuel pas testé la version 10.2 de MacOS X.
Pour MacOS X antèrieur à la version 10.2, il existe plusieurs solutions
pour pouvoir imprimer vers un serveur CUPS.
La première solution, est de se souvenir que MacOS X intègre la couche
"classic" c'est à dire MacOS 9. On peut alors utiliser la méthode
décrite précédement pour MacOS 9.
La deuxième solution est de configurer le serveur CUPS comme serveur
LPD, en installant le paquet cupsys-bsd, et en autorisant la
compatibilité avec les serveurs BSD LPD.
Cette manipulation modifie le fichier /etc/inetd.conf en ajoutant la
ligne :
printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd\
cups-lpd -o document-format=application/octet-stream
Puis, sur la Mac, executer le "print center" dans le dossier
"Applications/Utilities".
Et ajouter une imprimante LPR en specifiant l'adresse IP ou le nom du
serveur CUPS. Il faut aussi selectionner un fichier de description
Postscript de l'imprimante (fichier PPD) ou un fichier PPD générique.
L'absence de fichier PPD pour l'imprimante réseau, ou la non impression
de document via le fichier PPD générique, vous feront certainement
préférer la première methode, ou passer à la version 10.2 de MacOS X.
9.3.6 Le point de vue de l'utilisateur
Comment imprimer
Comme expliqué en introduction, l'impression est lancée via la
commande lpr. CUPS est capable d'imprimer directement les
fichiers au format Postscript, PDF, texte brut, ainsi que les formats
d'image les plus courants.
En mode graphique, les logiciels bien écrits sont capables de détecter
les différentes imprimantes, les autres vous demanderont une commande
à exécuter pour imprimer : donnez-leur lpr pour imprimer sur
l'imprimante par défaut, ou lpr -Pimprimante pour imprimer
sur l'imprimante imprimante.
Personnalisation de l'impression
L'impression est configurable très simplement pour chaque utilisateur
par le programme xpp, contenu dans le paquet du même nom. Il
vous présente la liste des imprimantes disponibles, et on peut
paramétrer l'impression pour chacune d'entre elles en cliquant sur
Options (on s'en serait douté me direz-vous). N'oubliez tout
de même pas de cliquer sur Save settings pour enregistrer vos
modifications.
De plus, xpp permet de paramétrer facilement des « sous-configurations »
(instances) personnelles pour CUPS. Ceci permet d'enregistrer
différentes configurations fréquemment utilisées pour une imprimante.
Par exemple, si vous imprimez souvent en qualité « brouillon », il
vous suffit de :
-
Cliquer sur «Instance» ;
- Copier la configuration principale vers une configuration nommée
« brouillon » ;
- Sélectionner la configuration « brouillon » puis éditer ses options ;
- Définir les options pour avoir une qualité brouillon ;
- Sauvegarder les préférences.
Lorsque vous imprimerez avec xpp, vous pourrez directement sélectionner
la configuration brouillon (cela fonctionne aussi avec lpr -Pbrouillon
fichier).
Le défaut de xpp étant de ne pas être francisé, on pourra lui préférer
gtklp, suivant les goûts.
Il existe aussi qtcups,
dont la fonction première est de ressembler au panneau d'impression de
Windows, ce qui peut servir à ne pas dérouter certains.
L'existence de lpoptions
2 permet
d'effectuer ces réglages en ligne de commande.
On se réfèrera à la page de manuel pour une
description plus complète.
9.3.7 Pour en savoir plus
9.4 Service LDAP
-
d'après
Pascal Pucci
(20 Avril 2001 /
www.pascalou.org/linux/doc)
- intégration Georges Mariano
(Décembre 2002)
9.4.1 Introduction
|
| (FIXME)
Une petite intro sur LDAP (rôle/avantages) ? |
|
9.4.2 Installation de Openldap
Sous GNU/Debian :
Suivez les instructions et validez à chaque étape. Nous modifierons ensuite
le paramétrage.
9.4.3 Configuration de Openldap
Modifiez le fichier
/etc/openldap/slapd.conf
comme suit :
# This is the main ldapd configuration file.
# Schema and objectClass definitions
include /etc/openldap/slapd.at.conf
include /etc/openldap/slapd.oc.conf
# Schema for supporting Netscape Roaming
include /etc/openldap/netscape_roaming.at.conf
include /etc/openldap/netscape_roaming.oc.conf
# Schema for supporting Debian Package Directory entries
# include /etc/openldap/debian.at.conf
# include /etc/openldap/debian.oc.conf
# Schema check allows for forcing entries to
# match schemas for their objectClasses's
schemacheck off
# Where clients are refered to if no
# match is found locally
# referral ldap://ldap.four11.com
# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile /var/run/slapd.pid
# Read slapd.conf(5) for possible values
loglevel 0
############################
# ldbm database definitions
############################
# The backend type, ldbm, is the default standard database ldbm
# The base of your directory
suffix "dc=exemple"
# Where the database file are physically stored
directory "/var/lib/openldap"
# Save the time that the entry gets modified
lastmod on
# By default, only read access is allowed
defaultaccess read
# For Netscape Roaming support, each user gets a roaming
# profile for which they have write
access to access to dn=".*,ou=Roaming,dc=exemple"
by dnattr=owner write
# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
access to attribute=userPassword
by dn="cn=root,ou=People,dc=exemple"
write by self
write by * none
# The admin dn has full write access
access to * by dn="cn=root,ou=People,dc=exemple" write
# End of ldapd configuration file
# L'utilisateur "root" pour la branche "People, exemple"
# a tout les droits.
rootdn "cn=root,ou=People,dc=exemple"
# Son mot de passe. (Il peut être en clair ou en crypté).
rootpw mon_password
9.4.4 Migration des utilisateurs vers LDAP
Je vous conseille d'utiliser les outils de migration de www.padl.com :
Une fois l'archive décompressée :
| tar |
xvfz MigrationTools.tgz |
configurez l'outil :
éditez le fichier de configuration migrate_common.ph et remplacez
$DEFAULT_BASE = "dc=padl,dc=com" ;
par :
$DEFAULT_BASE = "dc=exemple";
Ensuite construisez en mode super-utilisateur (root) votre base à partir
de vos comptes unix existants :
./migrate_passwd.pl /etc/passwd > /tmp/arbre-exemple.ldif
Comme vous pouvez le voir en éditant le fichier /tmp/arbre-exemple.ldif,
les utilisateurs ont été ajoutés dans une branche People, fille du noeud
principale que nous avons défini à "dc=exemple" (pour l'exemple).
Il nous faut donc créer ces noeuds avant d'y ajouter nos utilisateurs.
Pour ceci, ajoutons les lignes suivantes au début de notre fichier
/tmp/arbre-exemple.ldif
:
dn: dc=exemple
objectclass: dcobject
dc: maison
dn: ou=People, dc=exemple
objectclass: organization
ou: People
Notre fichier de base est prêt. Initialisons notre annuaire.
9.4.5 Création de la base LDAP
Tapez en ligne de commande la ligne suivante :
| ldapadd |
-h localhost -p 389 -D "cn=root,dc=exemple"
-w monpassword -f /tmp/arbre-exemple.ldif |
Vérifiez ensuite que votre base LDAP a bien été remplie en faisant une
recherche :
| ldapsearch |
-L -h localhost -p 389 -b "dc=exemple" "(objectclass=*)" |
ou testez l'utilisation d'un outil d'exploration de base LDAP (voir
9.4.9, page ??).
Nota Bene
Vous avez sans doute remarqué que le champ "userPassword" est crypté
({crypt}...). Le mot de passe peut rester en clair ou être crypté
avec d'autres algorithmes d'encryptages : MD5, SHA, DES
9.4.6 Configuration PAM-LDAP
PAM (Pluggable Authentication Modules) permet un mode d'authentification
modulaire facilement paramétrable. Il existe donc un module PAM pour
LDAP fourni par le paquet libpam-ldap
.
Après installation de ce paquet, paramétrons ce module :
9.4.7 Configuration PAM
Configuration
Vérifiez au préalable que vous possédez les bons paquets :
Puis remplacez le contenu des modules d'authentification /etc/pam.d/*.
Nous testerons ici avec rlogin, remplacez donc
/etc/pam.d/rlogin
par :
auth required pam_nologin.so
auth sufficient pam_ldap.so
auth required pam_pwdb.so shadow nodelay
account sufficient pam_ldap.so
account required pam_pwdb.so
password required pam_cracklib.so
password required pam_pwdb.so shadow nullok use_authtok
Si cette configuration vous parait un peu trop compliquée (sécurisée),
vous pourrez utiliser la suivante :
auth required pam_ldap.so
account required pam_ldap.so
password required pam_ldap.so
session required pam_ldap.so
Configuration avec création automatique du répértoire personnel
On pourra grace au procédé PAM améliorer notre configuration par la création
automatique des répertoires personnels au cas ou ils n'existeraient pas déjà.
Dans ce cas essayez d'ajouter à votre mode d'authentification /etc/pam.d/*
le contenu suivant :
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session required pam_pwdb.so
Tests
Utilisez l'outil que vous avez configuré avec un utilisateur de la base
LDAP :
9.4.8 Service de nommage (nsswitch librairies).
Exemple d'utilisation de ce service :
-
Savoir nommer le propriétaire d'un
fichier si son propriétaire est dans une base LDAP.
Donc, il nous faut installer cette librairie pour LDAP :
Puis, il nous suffira de configurer :
:
Outils pour administrer, explorer des bases LDAP de manière ergonomique:
9.4.10 Pour en savoir plus
9.5 Service ADSL
Ci-dessous, des indications précises concernant du matériel
qui fonctionne.
Les noms des personnes ayant soumis l'info ne sont pas repris, prière
de consulter les archives
de la liste.
| Alcatel STH ethernet
|
aucun problème avec le package pppoe
de la woody. |
| easyconnect Diva 2430SE
|
cher mais necessitant aucune configuration, juste 192.168.1.1 comme passerelle. |
| ECI Ethernet B-Focus
|
Aucun problème de configuration de connexion avec pppoeconf
|
-
Modem ethernet
- PPPOE PPPOECONF kernel 2.2.19 + Home Speed Touch
(Alcatel) + carte ethernet Netgear FA310TX
Nous reprenons ici les noms de paquets utilisés (ou utilisables)
ci-après. Attention, cette liste n'est pas nécessairement exhaustive.
9.5.3 Configuration pppoe rapide
-
La documentation (en anglais) de l'installation de pppoe sous Debian
GNU/Linux "potato" se trouve dans le répertoire
/usr/doc/pppoe
.
Ce qui suit en est une
traduction et une adaptation.Il faut comprendre qu'il s'agit de
modifier les scripts qui commandent et lancent l'exécutable
ppp.Cette documentation est seulement valide pour une connexion sur
carte ethernet et non avec un modem USB.
- Sous Debian Potato (2.2.rx), premièrement, installez le package
pppoe
-
pap-secrets
- Allez dans le répertoire /etc/ppp/
et
éditez le fichier pap-secrets
. En bas du fichier, effacez
la dernière ligne et tapez à la place le login de votre connexion,
le nom de votre FAI et le mot de passe de votre connexion; ces
renseignements doivent être sur la même ligne, séparés par un
espace.
- dsl-provider
- Éditer le fichier /etc/ppp/peers/dsl-provider
. Écrivez à la fin du script:
user (suivi de votre login de connexion).
- networking
- Éditer /etc/init.d/networking
,
pour activer la carte ethernet reliée à votre modem, écrivez sur
la deuxième ligne du script:
ifconfig eth0 up
- provider
- Éditer le fichier /etc/init.d/ppp
,
ajoutez aux 2 occurences de provider le
préfixe "dsl", suivi d'un tiret, pour avoir "dsl-provider".
- Créez le fichier ppp_on_boot
en passant par la
commande
touch /etc/ppp/ppp_on_boot
- On lance enfin la commande clavier:
pour lancer la connexion (qui sera automatique au prochain démarrage du système)..
Votre connexion ADSL sous Debian GNU/Linux est prête; regardons
maintenant comment procéder sous Woody (Debian 3.0):
-
paquets
- Assurez-vous d'avoir installé les 2 paquets pppoe et
pppoeconf
- pppoeconf
- Lancez la procédure de configuration en tapant la
commande pppoeconf dans une console. Vous devez avoir à votre
disposition les renseignements fournis par votre fournisseur
d'accès:
-
login de connexion,
- mot de passe de connexion,
- et adresses DNS.
En principe, si vous avez installé vous-même votre distribution
Debian, vous devez avoir donné quelques uns de ces renseignements,
comme suit.
-
adresse1
- L'adresse de votre machine, si vous n'êtes pas en
réseau, doit être 127.0.0.1
- masque
- Le masque de réseau doit être 255.255.255.0 (même si
vous n'êtes pas en réseau)
- adresse2
- Les adresses du serveur de votre fournisseur d'accès
(DNS)doivent être indiquées dans le fichier
/etc/resolv.conf
et de la forme (exemple de Netissimo
de France Telecom) 193.252.19.3
193.252.19.4
Voilà, avec cette rapide introduction, vous devriez avoir une
connexion qui fonctionne. Pour la tester, rien de plus simple, il
suffit de taper cette commande en tant que root :
ou
/etc/init.d/ppp
start
(si /etc/ppp/ppp_on_boot
existe) voire :
Ensuite, il ne reste plus qu'à regarder si l'interface ppp0 est bien
montée en tapant
|
| (FIXME)
De quelle forme doit être le résultat ? |
|
et si il y a un problèmes, il faut aller voir le fichier
/var/log/messages
.
9.5.4 Connexion automatique au boot
Il existe un fichier appelé /etc/ppp/no_ppp_on_boot
Si le paquet pppoe
a été installé, il existe un fichier
/etc/ppp/ppp_on_boot.dsl
Il suffit de créer un lien :
|
| ln -s /etc/ppp/ppp_on_boot.dsl /etc/ppp/ppp_on_boot |
|
Bref, il faut le renommer en ppp_on_boot et l'éditer afin de
l'adapter à votre configuration. Cette édition est très simple car il
n'y a que deux pramètres à changer, que beaucoup parmis vous ne
changeront même pas car leur valeur par défaut sera la bonne.
-
Aller à la ligne
PPPD=/usr/sbin/pppd
et remplacer le chemin vers
pppd par celui correspondant à votre installation.
- Puis aller à la ligne
INTERFACE=eth0
et comme d'habitude,
remplacer eth0 par l'interface connectée à votre modem ethernet.
Voilà, au prochain reboot de votre machine, votre machine se
connectera toute seule au net!
|
| (FIXME)
Q: Doit-il être nécessaire de redémarrer la machine ??? R: Non
(Adeimantos) |
|
9.5.5 Consulter également
Ce document s'adresse à tous les possesseurs du modem ADSL ECI USB voulant l'utiliser sous Linux.
9.6 Service Samba
9.6.1 Les paquets indispensables
9.6.2 Pour en savoir plus
Livre(s) sur Samba
|
| (FIXME)
URL du livre librement disponible sur Samba |
|
Liste de diffusion Samba
-
samba-fr
-
http://listes.ujf-grenoble.fr/wws/info/samba-fr