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

8. Administration / utilisation de Linux

8.1 Partitionnement (FIPS, FAT)

Question

Comment repartitionner sans détruire de partition ?

Réponse

Le logiciel MS-DOS FIPS permet cela, mais uniquement avec les FAT 16 bits. Une version plus récente traite les FAT32.

8.2 Formats de disques (FAT, MS-DOS, MacOS, HFS, FAT32, Joliet ...)

Question

Comment exploiter les disques non écrits sous Linux ?

8.3 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.).

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

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

Autre réponse

Contrairement à DOS, le répertoire courant (qui s'appelle .) n'est pas recherché explicitement lors de la recherche des exécutables. Solution : l'ajouter dans le PATH (déconseillé pour des raisons de sécurité) ou lancer l'exécutable ainsi : ./programme

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

8.7 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/.. »

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

La solution indiquée ci-dessus n'est pas spécifique à Red Hat. Afin d'éviter de rebooter sous un autre système (ou s'il n'y en a pas), il suffit, après avoir correctement modifié lilo.conf, d'exécuter la commande suivante : lilo -C /mnt/tmp/etc/lilo.conf -r /mnt/tmp.

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

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

8.11 Consoles virtuelles

Question

Comment mieux employer les consoles virtuelles ?

Réponse

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

On peut toutefois utiliser certains artifices :

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

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

8.14 Fichiers core

Question

Qu'est-ce qu'un fichier core ?

Réponse

S. Stephant : Linux avorte tout processus lorsqu'il tente d'effectuer une opération potentiellement dangereuse (par exemple exécuter des données, accéder à une adresse mémoire ne lui appartenant pas ...).

Un fichier "core" est une "image", générée par le système, du contexte d'exécution d'un programme au moment d'une interruption de ce genre. Il permet de déterminer par la suite, grâce à un debugger, la cause du problème.

8.15 Formats d'archives (.bz, .bz2)

O. Tharan :
Les fichiers .bz et .bz2 sont des archives compactées avec une méthode plus efficace que celle de gzip (archives .gz).

Les programmes capables d'en engendrer ou décompacter, appelés "bzip" et "bzip2", existent sous forme de paquetages. On peut aussi en trouver les sources.

Il existe un mini-Howto décrivant l'utilisation de bzip2.

8.16 unable to get major

Question

Que signifie le message unable to get major suivi d'un nombre ?

Réponse

Un pilote de périphérique compilé dans le noyau (donc « intégré ») se trouve aussi disponible sous forme de module.
E. Decaen : utiliser modprobe -c pour étudier la liste des modules en ligne.

8.17 e2fsck : deleted inode ... zero dtime

Question

e2fsck, par exemple lorsqu'il est invoqué automatiquement durant le boot, produit parfois un message :

Deleted inode XXX has zero dtime. 
Set dtime? yes.

Réponse

R. Card :

Chaque i-noeud possède un champ dtime qui contient la date de suppression du dernier fichier associé à cet i-noeud. Le but de ce champ est de permettre d'effectuer des traitements particuliers quand/si une fonction « undelete » sera incorporée à Ext2fs.

Lorsqu'un fichier est supprimé, le noyau met à jour ce champ dtime (avec la date courante) et l'i-noeud est réécrit sur disque. Quand un i-noeud est alloué, le champ dtime est mis à zéro.

fsck vérifie que le champ dtime est non nul pour tout i-noeud non alloué (dont le nombre de liens est nul). Si ce n'est pas le cas, il affiche ce message d'erreur. Généralement, cette erreur peut être due à des redémarrages brutaux, à des problèmes de disque ou à des bogues dans Ext2fs.

De toutes façons, c'est une erreur très bénigne dans la mesure où dtime n'est pas (encore) utilisé.

8.18 /etc/passwd is locked

Question

"/etc/passwd is locked, try again later"

Réponse

J.-C. Delépine : Tu as dû utiliser la commande adduser et la quitter brutalement. La version Red Hat de cette commande crée un fichier /etc/.pwd.lock afin de s'assurer l'exclusivité sur le fichier /etc/passwd.

Solution donc : vérifier quíl n'y a pas un autre adduser qui tourne quelque part puis supprimer le fichier /etc/.pwd.lock

8.19 Couldn't get free page

Réponse

D. Segonds :
Peut être causé par un manque de mémoire. Rajouter par exemple de la mémoire virtuelle (swap) en utilisant mkswap puis swapon.

8.20 shutdown: already running

Question

"halt,shutdown,reboot" en tant que root ou Ctrl+Alt+Supr me renvoient tous le message: "shutdown: already running"

Réponse

D. Segonds, E. David et Remy Card :

Méthode la plus élégante : shutdown -c.

Un fichier bloque le lancement d'un deuxième shutdown lorsqu'un autre est déjà en cours. Il s'agit de shutdown.pid, souvent placé dans /var/run ou bien dans /etc. Le détruire.

8.21 bad data in /var/run/utmp

Réponse

Des binaires libc5 et libc6 coexistent sur le système, or le format de /var/run/utmp a évolué.

8.22 Bibliothèques partagées ignorées (librairie, shlib, shared)

Question

Linux ne prend pas en charge les bibliothèques partagées.

Réponse

T. Parmelan (édité) : En tant que root :

8.23 Version d'exécutable, bibliothèques partagées

Question

Comment déterminer le type d'un exécutable ou obtenir la liste des bibliothèques partagées qu'il emploie ?

Réponse

Commande ldd NOMFICHIER.

8.24 /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...


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