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

Contenu de cette section

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 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

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 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.10 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.11 Changement de partition (déplacement de Linux)

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.12 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.13 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.14 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.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.

Autres exemples :

/dev/hda1   /mnt/dos-c   vfat    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

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 :
Depuis la version 3.6.0, le format des killfiles a changé (cf. le README.killfiles livré avec la distribution). 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).


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre