Page précédente Page suivante Table des matières

3. Système d'exploitation : configuration, outils, administration

3.1 Installation de Linux sans création de partition

Question

Puis-je installer Linux sans créer de partition ?

Réponse

Oui, c'est possible grâce à UMSDOS.

3.2 Login impossible (mot de passe refusé, password, connexion)

Question

Login (connexion) impossible, probablement après manipulation du fichier /etc/passwd ou de l'un des éléments de la chaîne associée (binaire login, shadow passwords, Red Hat : pwdb ou PAM ...)

Réponse

S'il s'agit d'un login root à travers le réseau, ne pas négliger de modifier /etc/securettys. Dans le cas d'une Red Hat, examiner aussi la configuration PAM.

Solution fournie par J. Fourre et P. Saratxaga.

Démarrer de façon à pouvoir modifier /etc/passwd. Pour cela, il suffit de passer un paramètre au noyau afin de lancer le système dans un mode d'exploitation spécial.

Pour ce faire, démarrer :

Dans le cas d'une Red Hat :
Pablo recommande, sitôt le système démarré grâce au paramètre init=/bin/bash, d'invoquer /etc/rc.d/rc 2, remonter "/" en autorisant la lecture et l'écriture (mode rw) avec mount -n -o remount,rw /, puis d'éditer /etc/passwd.

On peut se contenter d'invoquer /etc/rc.d/init.d/keytable afin de bénéficier d'une gestion du clavier adéquate (AZERTY ...).

Pour supprimer un mot de passe, il suffit de modifier la ligne correspondant au compte dans le fichier /etc/passwd afin de détruire tous les caractères placés entre les deux premiers « deux-points ».

Exemple (suppression du mot de passe de root) :

En cas de problème, renommer /etc/shadow.

Commentaires

ATTENTION : un pirate peut employer ce genre d'approche pour prendre le contrôle d'une machine à laquelle il peut « physiquement » accéder.

Pour limiter les risques :

Cela devrait limiter les écarts des mauvais plaisants mais gare : un malintentionné peut encore ouvrir la machine (remise à zéro du SETUP, dépose du disque dur...).

F. Rouaix note : si la machine peut également démarrer sous MS-DOS, utiliser loadlin pour charger un noyau avec des options arbitraires, telles que single.

L. Wacrenier ajoute : le mot de passe de LILO n'est pas chiffré (un boot secteur n'a pas à s'encombrer de bibliothèque de chiffrement). Le mot de passe apparaîtra donc en clair à qui peut lire le disque. D'où l'idée de mettre un mot de passe qui ne peut être saisi au clavier (ou de redéfinir un clavier, etc.).

3.3 Mon terminal se bloque (fige, gèle, arrêt)

Question

La session de travail semble parfois bloquée, le terminal ne produit rien et n'accepte plus rien (aucune touche ne fonctionne).

Réponse

Le blocage est souvent normal car dû à une combinaison de touches « Control-S » ou bien « Arrêt Défil. » (« Scroll Lock ») en mode console. Il suffit alors d'employer « Control-Q » (ou sur « Arrêt Défil. ») pour ranimer la session.

3.4 Virus

Question

Existe-t-il des virus actifs sous Linux ?

Réponse

Non, pas à proprement parler car un programme standard (non « setuid ») en fonctionnement sur une machine Linux ne bénéficie que des droits accordés à l'utilisateur qui l'invoque. Conclusion logique : root ne doit jamais lancer de programmes douteux.

En pratique, quelques failles du système (relevant d'erreurs de conception ou de programmation), découvertes de loin en loin et vite comblées, permettraient parfois à un virus de devenir dangereux. Mais nul n'a encore pu exploiter cela. Pour se protéger : utiliser « Tripwire ».

3.5 Prise en compte d'un nouvel exécutable dans un répertoire du PATH

Problème

Le shell en prend pas en compte un exécutable placé dans un répertoire qui figure pourtant dans le PATH.

Réponse

Il faut obliger le shell à explorer le contenu des répertoires du PATH.

3.6 Manipulation des fichiers .tar.gz (archive)

Question

Qu'est-ce qu'un fichier .tar.gz et comment l'utiliser ?

Réponse

Un fichier .tar.gz contient un ou plusieurs fichiers rassemblés au sein d'une archive tar, elle-même compactée grâce à gzip.

Commentaire

Il est temps de lire un bon document destiné à l'utilisateur débutant d'un Unix moderne...

3.7 /proc (kcore)

Question

Qu'abrite le répertoire /proc ?

Réponse

Un ensemble de fichiers « virtuels » permettant de communiquer avec le noyau. Aucun d'eux n'occupe d'espace sur le disque.

Notamment, le fichier kcore, dont la taille peut effrayer, n'est qu'une image de la mémoire disponible sur la machine. N'essayez pas de le détruire pour « libérer » de l'espace disque...

3.8 Paramètres communiqués au noyau (LILO, loadlin)

Question

Comment fixer les paramètres que LILO ou loadlin devront passer au noyau ?

Réponse

LILO dynamique (« à la main »)

Pour passer un paramètre au noyau via LILO il suffit, lors du démarrage, de l'obliger à afficher sa chaîne d'appel LILO boot:

Pour cela, verrouiller le mode « Numérique » (touche Verr Num) ou le haut de casse (« majuscules »), ou bien maintenir une touche morte (par exemple Control ou Shift) enfoncée durant le premier accès au disque.

Sitôt LILO boot: affiché, appuyer sur la touche TABulation. Les noms logiques des systèmes déclarés dans le fichier de configuration de LILO apparaissent. Choisir celui d'un noyau Linux stable, le composer puis insérer un espace et le paramètre souhaité.

Exemple (cas d'un noyau appelé lindis auquel on souhaite passer le paramètre single) :

  1. sitôt après les diagnostics du BIOS, maintenir la touche Control enfoncée alors que le démarrage sur disque commence. LILO prend la main et affiche :
    LILO boot:
    
  2. on peut alors appuyer sur TAB afin d'obtenir la liste des systèmes d'exploitation accessibles :
    LILO boot: ((appuyer sur la touche "TABulation"))
    lindis oldlin beta msdos ((noms des systemes "bootables"))
    
  3. fournir à LILO le nom de l'un des systèmes, suivi, s'il s'agit d'une version de Linux, du nom du paramètre et, le cas échéant, de la valeur associée.
    Exemple :
    LILO boot: lindis single
    

LILO statique (fichier de config)

Pour figer un paramètre, placer dans la section adéquate du fichier /etc/lilo.conf une déclaration append="X", où X remplace le paramètre à transmettre au noyau. Le BootPrompt-HOWTO fournit toutes les précisions nécessaires.

loadlin

loadlin est un petit programme grâce auquel on peut lancer Linux à partir d'une session MS-DOS.

S. Stephant :

La syntaxe générale de loadlin est :

loadlin.exe ton_noyau root=ta_partition_racine [les parametres du noyau]

Il suffit donc de mettre une ligne dans le config.sys. Exemple (cas d'une partition Linux sur /dev/hda1, noyau version 2.30) :

shell=c:\loadlin\loadlin.exe c:\loadlin\vmlinuz.230 root=/dev/hda1 ro

Attention : la ligne « shell=... » de MS-DOS ne peut contenir que 127 caractères. La solution est de passer par un fichier de paramètres. config.sys devient alors :

shell=c:\loadlin\loadlin.exe @c:\loadlin\params.dat

et le fichier params.dat contient, par exemple :

c:\loadlin\vmlinuz.230 root=/dev/hda1 ro

Lire le fichier manual.txt livré avec loadlin.

Commentaires

LILO

3.9 Démarrage, via LILO, d'un autre OS sur un autre disque (boot)

Réponse

Utiliser l'option de LILO loader=/boot/any_d.b

Commentaires

Ceci ne concerne que les systèmes mettant à contribution le BIOS lorsqu'ils doivent déterminer la géométrie du disque.

Lire la section « Booting a foreign operating system » de la documentation de LILO.

3.10 Installation de paquetages d'une autre distribution (rpm, deb, pkg)

Question

Comment profiter, sur une distribution X, des paquetages destinés à une autre distribution ?

Réponse

Compiler et installer rpm. Se procurer les utilitaires alien, unrpm, rpm4everyone, rpm2targz (rpm2tgz)

E. David :

Un .deb n'est autre qu'une archive ar contenant (entre autres) le .tgz. Un petit coup de ar sur un .deb permet donc d'installer un package debian « à la main » sur une slackware.

3.11 Décompte incorrect des liens vers un répertoire

Question

Le nombre de liens sur un répertoire semble faux.

Voici la question :

[root@localhost src]# ls -l
total 2
lrwxrwxrwx       1 root root    12 May  2 19:32 linux -> linux-2.0.27
drwxr-xr-x      15 root root  1024 May  3 09:17 linux-2.0.27
drwxr-xr-x       7 root root  1024 Mar  3 15:08 redhat

                /\  15 ? ? ? ? ?
Voilà déjà là mes bouquins et mes essais disent qu'il ne peut pas y avoir de hard link sur un répertoire, et que les soft link ne sont pas dans les compteurs de liens, alors comment le répertoire linux-2.0.27 peut avoir son compteur à 15 ?

Réponse

Solution fournie par S. Stephant (révisée par F. Petillon) :

Afin de ne pas boucler sans fin lors de la résolution de noms de fichiers, il est effectivement _impossible_ de créer un lien « hard » sur un répertoire. Seul les liens symboliques sont autorisés.

Le compteur de liens (seconde colonne dans un ls -l) indique le nombre de noms différents que porte un même fichier. Or, un répertoire a toujours au moins deux noms : « nom_du_repertoire » et « nom_du_repertoire/. ».

Chaque répertoire contient un répertoire nommé « .. » pointant sur son répertoire parent. Ces répertoires incrémentent donc d'autant le compteur de liens du répertoire parent.

Dans ton cas, l'entrée « linux-2.0.27 » a un compteur de liens égal à 15 : le répertoire « linux-2.0.27 », le répertoire « linux-2.0.27/. » et 13 autres répertoires « linux-2.0.27/répertoire/.. »

3.12 Changement de partition (copie, déplacement, disque dur)

Question

J'ai tout d'abord installé Linux (Red Hat) sur le disque dur hda. Or, j'ai depuis acheté un autre disque dur plus gros que j'ai mis en maître sur ma première nappe, reléguant le précédent sur ma deuxième nappe IDE... Mon ancienne installation de Linux se retrouve donc maintenant en hdc... Que faut-il modifier pour arriver à la faire tourner comme avant mais en hdc...?

Réponse

Solution fournie par J.C. Richard :

3.13 Identification du processus utilisant une ressource

Question

Comment déterminer quel processus utilise une ressource donnée (fichier, donc par extension périphérique) ?

Réponse

Employer (en tant que root) l'utilitaire fuser, livré avec l'ensemble psmisc.

Exemple commenté :

$ fuser /dev/ttyS1     # qui donc utilise /dev/ttyS1 ?
/dev/ttyS1:    245     # le processus numero 245

$ ps -auxw|grep 245   # quel est ce processus ?
root       245  0.3  6.8  8336  4356  ?  S   10:34   1:29 X :0
# c'est X Window !

$ fuser /usr/bin/X11/X     # qui donc utilise "/usr/bin/X11/X" ?
/usr/bin/X11/X:    245     # programme execute par le processus 245
On peut aussi installer lsof.

3.14 Horloge (heure, date, retard, avance)

Question

Mon horloge système avance ou retarde, que faire ?

Réponse

D. Madore :
Linux garde son horloge à jour en fonction du générateur de fréquence de ton ordinateur (qui produit des IRQ0). Pour peu qu'il ne soit pas excellent, l'horloge se dérègle rapidement.

Si ton horloge CMOS (qui est complètement indépendante) est meilleure, tu n'as qu'a demander à cron d'exécuter clock -a toutes les heures (ou clock -au si l'horloge CMOS est à l'heure GMT). Tu peux obtenir encore une meilleure précision en corrigeant une éventuelle dérive de l'horloge CMOS dans /etc/adjtime. Cf. man 8 clock pour tous renseignements utiles.

Note : sous certaines distributions un hwclock, aux options un peu différentes, remplace clock.

3.15 Montage de systèmes de fichiers (disque, partition, accès, fstab, mount)

Réponse

Le simple ajout d'une ligne à /etc/fstab permet à n'importe quel utilisateur de monter/démonter un support amovible sans devoir employer tous les paramètres.

Voici, par exemple, un extrait de /etc/fstab (cas d'un CD-ROM ATAPI maître sur la seconde chaîne EIDE)

/dev/hdc    /mnt/cd     iso9660   noauto,user,exec,ro,umask=033,unhide 0 0

Chaque ligne du fstab est composée de champs qui décrivent un système de fichiers montable. Des espaces ou tabulations séparent ces champs.

Utiliser /dev/sr0 en lieu et place de /dev/hdc pour le premier CD SCSI.

N'importe quel utilisateur peut alors invoquer mount /mnt/cd puis umount /mnt/cd et obtenir satisfaction. ATTENTION : le binaire de mount doit être setuid root :

chown root `which mount`
chmod +s `which mount`

Autres exemples :

/dev/hda1   /mnt/dos-c   vfat    umask=003,codepage=850,noauto,user,exec 0 0
/dev/sda4   /mnt/jaz     ext2    noauto,user,exec 0 0
/dev/fd0    /mnt/floppy  auto    sync,user,noauto,unhide 0 0

Documentation : commencer par les pages de manuel de mount et fstab.

S. Stephant :

Utiliser les options gid, uid et/ou umask pour limiter les possibilités des divers utilisateurs sur les systèmes de fichiers ainsi montés.

Afin de limiter l'accès de certaines partitions à un utilisateur ou à un groupe précis, on peut utiliser l'option de montage « umask ». Par exemple, pour que seuls les membres du groupe « dos » (gid=202) puissent accéder à votre partition vfat, on peut utiliser la ligne suivante dans le fstab :

/dev/hda1   /diskc   vfat   noauto,user,noexec,gid=202,umask=0007 0 0

De même, pour autoriser seulement l'utilisateur « durand » (uid=100) à écrire sur cette partition, autoriser les membres du groupe « dos » (gid=202) à y lire, et interdire l'accès aux autres, on peut utiliser une entrée comme :

/dev/hda1 /diskc vfat noauto,user,noexec,uid=100,gid=202,umask=0027 0 0

Ne modifier que /etc/fstab, JAMAIS /etc/mtab.

3.16 Consoles virtuelles

Question

Comment mieux employer les consoles virtuelles ?

Réponse

3.17 Systèmes de fichiers compactés (compression)

Réponse

C. Blaess (édité) :

Il n'existe pas encore de système de fichiers stable pour Linux capable d'effectuer un compactage dynamique des données. Un patch pour les noyau 2.0.x offrant la compression dynamique est cependant disponible.

On peut toutefois utiliser certains artifices :

Pour accèder aux volumes compressés d'une partition MS-DOS, il y a plusieurs possibilités :

3.18 Filtrage des HOWTOs et listes ftp.lip6.fr dans fr.comp.os.linux.annonces (élimination, article, suck)

Question

Comment ne pas recevoir les articles de HOWTO postés dans fr.comp.os.linux.annonces ?

Réponse

Le champ Path d'un article abritant un HOWTO contient la chaîne fr.howto. Celui d'un article véhiculant une liste des nouveaux fichiers Linux disponibles sur le serveur ftp.lip6.fr contient fr.miroir. Il suffit de filtrer en fonction de ce critère.

Si vous récupérez les articles grâce à un feed INN normal, demander à l'administrateur de la machine « nourrissant » ainsi la vôtre d'ajouter le membre de Path adéquat à l'exclude de la ligne du newsfeeds correspondant à votre machine.

Si vous employez suck, (É. Jacoboni) vous pilote :
(version 3.6.0 et suivantes) : tout champ d'en-tête peut être filtré selon la syntaxe suivante :

champ:expression rationnelle ("regexp") de filtrage

Le contenu du fichier suckkilfile.fcola correspondant à l'exemple de F. Pavageau, ci-dessus, devient donc :

Path:fr\.howto

3.19 Fichiers spéciaux (/dev, périphérique)

Question

Comment ajouter une entrée dans /dev ?

Réponse

À chaque périphérique peut correspondre un (ou plusieurs) fichier spécial grâce auquel les programmes dialoguent avec le pilote de périphérique correspondant.

Règles :

3.20 Noyau inexploitable

Question

Après compilation et installation d'un noyau récent (mai-juin 1998 ...) le système ne redémarre plus ou bien les logiciels fonctionnent mal.

Réponse

O. Tharan explique :
Cela vient du compilateur utilisé ; la version recommandée est la 2.7.2.3 (ni antérieur, ni postérieur). Ne pas utiliser gcc 2.8 et supérieurs, ainsi qu'egcs. Je conseille d'installer gcc pour la compatibilité et la partie d'egcs pour le C++.

R. Card : (utilisation de gcc 2.7.2.3 nécessaire à cause d') un bug dans le noyau 2.0 visant à contourner un bug dans gcc 2.7 (bug qui a été corrigé dans gcc 2.8 et dans egcs et qui entraîne des problèmes si le noyau est compilé avec ces versions récentes des compilateurs).

3.21 Mise à jour Debian : 1.3.1 vers 2.0

B. de Batz :
Le script d'upgrade qui est sur le CD (cd_autoup.sh) ne correspond pas à la répartition des fichiers sur le disque car certaines bibliothèques ont été déplacées.

Il faut aller récupérer un cd_autoup.sh plus récent.

De plus ce "nouveau" cd_autoup.sh étant prevu pour être sur le CD, il utilise un chemin absolu qui interdit son utilisation à partir d'un autre répertoire, et il faut y modifier la ligne :

  DM=`dirname $0`/../debian/hamm/hamm/$ARCH

de sorte qu'elle devienne :

  DM=../debian/hamm/hamm/$ARCH

3.22 Installation Red Hat 5.2 (messages en français)

Question

Lors de la procédure d'installation les fichiers contenant les messages en français ne sont pas pris en charge.

Réponse

J. Bernier :
Les disquettes (boot, supplementaire et secours) qui corrigent ce probleme sont disponibles.

3.23 Création d'une disquette d'amorçage de secours (boot, rescue)

Réponse

J. C. Delepine :
Explorer la zone system/recovery/ des sites FTP diffusant du Linux.

3.24 Utilisation de la mémoire

Question

Alors que mon système ne fait rien et que je n'ai quasiment pas de processus qui tournent, la commande 'free' indique que quasiment toute ma mémoire est utilisée !

Réponse

O. Tharan :
C'est normal. Linux utilise la mémoire pour plusieurs choses. Tout d'abord pour le noyau lui-même, évidemment, c'est de la mémoire irrécupérable pour autre chose ; ensuite, la mémoire utilisée par les applications ; et puis tout le reste, en mémoire cache disque (dite "buffer cache").

La mémoire cache, c'est ce que le système a utilisé à un moment et n'utilise plus. Mais, il se pourrait que les données (programme, fichier) soient demandées par l'utilisateur d'ici peu, alors au lieu d'aller les rechercher sur le disque, on va chercher ces données dans la mémoire cache, ce qui est beaucoup plus rapide.

Linux utilise donc le maximum de mémoire disponible pour en faire du cache, mais s'il s'avère qu'une application a besoin de plus de mémoire, il libère une partie de la cache pour l'application. Donc, rien n'est perdu et tout le monde est satisfait. Avec un peu de recul, on comprendra qu'il n'est pas inutile d'investir dans de la RAM : plus on en aura, plus le système disposera de cache, et plus il paraîtra rapide (il faut mettre un bémol à ceci, car les performances se dégradent si on augmente la RAM sans augmenter par ailleurs le cache processeur).

Le test ultime pour vous faire prendre conscience de ceci : démarrez, lancez X puis Netscape ; quittez et relancez Netscape et vous constaterez la différence de vitesse.

3.25 Compilation noyau : message "System is too big. Try using bzImage ormodules"

Question

Je suis en train de compiler un noyau et tout à coup, j'ai l'erreur suivante :

System is 520 kB
System is too big. Try using bzImage or modules.
make[1]: *** [zImage] Error 1

Réponse

O. Tharan :
Effectivement, le noyau est trop gros. Ceci est dû à la fameuse barrière des 640 Ko ! En effet, au démarrage le processeur est en mode réel et ne peut accéder qu'aux premiers 640 Ko, il faut dans cet espace charger à la fois LILO (512 octets) et le noyau. De plus, le noyau a besoin de cet espace pour se décompacter et se lancer, il faut donc ruser (source : Linux Device Drivers).

Il faut donc compiler le noyau de sorte qu'il puisse se charger correctement. Pour cela, utilisez la commande "make bzImage" et non "make zImage" pour pouvoir compiler un gros noyau. Mettre les pilotes qui ne vous servent pas tout le temps en module, afin qu'ils soient chargés à la demande et que le noyau soit plus petit.

3.26 Affichage très lent 100 cps dans la console (DFI PVB3+)

Question

Affichage console très lent, avec carte mère DFI PVB3+

Réponse

A. Buret de Longagne : Dans le SETUP :

 CHIPSET FEATURES SETUP
 ...
  CPU TO PCI WRITE BUFFER : DISABLED

3.27 telnet lent (connexion)

Question

Quand je fais un telnet depuis une machine Windows (ou Linux, d'ailleurs), j'attends très longtemps au moment de la connexion, environ une minute, avant d'avoir l'invite de login. Après, ça fonctionne très bien...

Réponse

O Tharan explique :
Problème de résolution de noms classique : la machine Linux essaie de faire une résolution inverse sur l'adresse IP de la machine MS-Windows pour savoir qui l'appelle, et n'y arrive pas, d'où attente. Exemple : je me connecte avec l'adresse IP 192.168.1.2 et Linux essaie de savoir à quel nom (windows.babasse.fr) cela correspond.

Solution : renseigner la table /etc/hosts en indiquant l'adresse IP de la machine MS-Windows et son nom. Exemple :

192.168.1.1 linux1.maison.fr
192.168.1.2 windows1.maison.fr

Commentaire

Inutile d'installer un serveur de noms pour si peu, même si c'est un bon exercice.


Page précédente Page suivante Table des matières