Les choses à savoir

Bien souvent, lorsqu'il migre de Windows à Linux, l'utilisateur est rapidement perdu dans les répertoires, les partitions à monter, etc. Ne serait-ce que le fait d'avoir accès à un disque ou une partition par l'intermédiaire d'un répertoire (point de montage) peut s'avérer déroutant. Mais peu à peu, l'habitude fait son office, jusqu'au jour où l'on tombe sur "un truc bizarre", comme une petite blague d'internaute...

 

Les pièges des noms de dossiers ou de fichiers

Voici quelques exemples :

spacewalker# cat >piege attention

difficile les débuts sous Linux !

^D

spacewalker# rm piege attention

rm: piege: No such file or directory

rm: attention: No such file or directory

spacewalker#

Le nom de fichier ne comporte pas d'accents et pourtant il n'est pas si facile à supprimer ce fichier ! Seule solution pour passer outre, faire comprendre à la commande que l'espace fait partie intégrante du nom de fichier :

spacewalker# rm "piege attention"

ou

spacewalker# rm piege\ attention

Grâce à cet espace géré de manière spéciale, on peut aussi se permettre des noms de répertoires du style ".. ", mais avec un espace !

spacewalker# mkdir ".. "

spacewalker# mv ./"piege attention" ./".. "

spacewalker# ls -a

total 120

. .. .. .Xclients .Xresources

.

[et ainsi de suite]

.

spacewalker#

Ce qui est un petit peu plus dangereux, c'est de créer un fichier ou un répertoire portant le nom *, caractère très spécial s'il en est.

la différence a de quoi dérouter...

spacewalker# cat >\*

gros gros danger

^D

spacewalker# rm *

Ici, vous supprimez tous les fichiers et non pas simplement celui nommé *.

Résultat :

spacewalker# ls

total 0

spacewalker#

La solution sans risque est :

spacewalker# rm \*

A présent, voyons ce qu'il faut maintenant éviter. Le résultat de la manipulation qui va suivre pourrait être expliqué de deux façons : Premièrement, vous avez un problème d'Inode (gravissime). Secondo, il vous est impossible de créer un fichier car vous avez dépassé la limite de création de fichier (rarissime). Pour vous donnez une idée de cette limite, faites un df -i. Pour créer un tel problème, vous devez écrire puis exécuter le script suivant :

spacewalker# cat >peste.sh << EOF

#!/bin/sh

umask 000

mkdir bouchon

cp peste.sh bouchon

cd bouchon

chmod +x peste.sh

./bouchon.sh &

EOF

spacewalker#

Une fois lancé ce script va créer des répertoires ./bouchon jusqu'à épuisement des Inodes. Résultat, la création de quelque chose comme :

/home/bouchon/bouchon/bouchon/bouchon/bouchon/bouchon/bouchon/bouchon/bouchon/bouchon........etc.etc.etc..

Pour le supprimer, on exécutera :

spacewalker# cd /home # si c'est ici que le # script a été lancé

spacewalker# rm -rf ./bouchon

En espérant que cela pourra aider certain.

Se protéger à la racine

Sans aller jusqu'à prétendre être la solution pour vous protéger contre une attaque de hackers vous voulant du mal (ce qui est somme toute très rare), il y a quelques règles élémentaires à respecter dans vos choix de vos mots de passe. Pour éprouver votre choix, on fera usage de l'utilitaire "John the ripper". Celui-ci est utilisé dans la plupart des cas pour découvrir un mot de passe de manière peu honnête

Avant toutes choses, voici les quelques règles de base à respecter pour faire votre choix. Vous remarquerez que l'utilitaire qui vous permet de choisir votre mot de passe (passwd) est assez exigeant. Suivez ses conseils !

Les noms, prénoms et tout ce qui a un sens est évidemment à proscrire. Choisissez, même s'ils vous demanderont un effort de mémoire plus important, des mots comme JuL53k84cI ou QpA3m5ci9Z.

Maintenant, passons à l'utilisation de "John the ripper" (téléchargeable à cette adresse : http://www.multimania.com/spacewal/ucf/ucfjohn2.zip).

Décompressons l'utilitaire,

gzip -d ./ucfjohn2.zip

puis demandons-lui de scanner votre fichier passwd :

./john ­w:puffs.dic /etc/passwd

"John the ripper" va regarder si les termes contenus dans puffs.dic peuvent être les mots de passe des utilisateurs référencés dans /etc/passwd. Cependant, si l'opération échoue, ne vous sentez pas à l'abri pour autant ! Pour être sûr de vous, complétez le dictionnaire (puffs.dic) avec des termes que vos utilisateurs pourraient éventuellement employer.

Comme les utilisateurs sont insités au changement fréquent de mots de passe, il serait intéressant pour l'administrateur de faire cette manipulation toutes les semaines. Pensez donc à l'utilitaire cron...

Boot, disquette ou de dos

En cas de problème, le boot sur Linux n'est pas une tâche facile. Voici trois manières de procéder :

Depuis le DOS

Si vous n'avez pas installé lilo, ou que vous n'avez pas de disquette de boot sous la main, vous pouvez exécuter cette commande :

loadlin c:\linux\vmlinuz root=/dev/hdb1 ro

Ce, à condition d'avoir copié vmlinuz et loadlin.exe (disponibles sur le CD de votre distribution) dans un répertoire linux sur C :.

Bien sûr, dans notre exemple, Linux est installé sur /dev/hdb1. ce qui n'est pas forcément compatible avec votre installation.

Disquette de boot

Dans le cas où vous faites une mise à jour générale, que vous recompilez votre noyau ou simplement pour prévenir d'un gros problème, il est indispensable de créer une disquette de boot avec votre noyau actuel. La manipulation à effectuer sous Linux est :

cat /vmlinuz-2.0.36-0.7 > /dev/fd0

On copie physiquement le noyau /vmlinuz sur le premier lecteur de disquette (a:).

LILO

LILO (LInux LOading) vous permet d'écrire sur le MBR (Master Boot Record). Il s'agit d'un programme qui gérera le multiboot. Lisons le fichier de configuration /etc/lilo.conf que LILO utilise lors de son installation (par la commande lilo).

boot=/dev/hda # disque où lilo s'installera

map=/boot/map

install=/boot/boot.b

prompt

timeout=50 # temps laissé pour le choix avant # lancement automatique(ici 5 s)

image=/boot/vm -

li nuz-2.0.36-0.7 # noyau à lancer

vga=9 # permet de choisir le mode vidéo. # Pour afficher un choix

# on mettrait vga=ask

label=linux # nom du système à lancer

root=/dev/hdb1 # partition ou est installé

# le système

read-only

other=/dev/hda1

label=win

table=/dev/hda

Ce fichier est rarement absent d'une distribution. Et personnellement, je vous conseille de le modifier, notamment pour modifier le mode vidéo. Si jamais un problème de boot devait surevenir, on taperait la commande qui suit sous DOS afin de régénérer le MBR :

fdisk /mbr

Attention aux antivirus de Windows (ai-je besoin de le préciser ?). Ils vérifient cette zone du disque mais s'y trompent à coup sûr : lilo n'est en aucun cas un virus!

Recherche dans vi

Pour éviter l'excellent, mais très encombrant, emacs pour faire vos recherches, utilisez vi. L'avantage de ce dernier est qu'il est très petit. Pour lancer une recherche, on se placera en mode commande (touche Esc), puis :

/[dD]e # pour chercher les occurences des mots #"de" et "De"

/[A-Z][a-z] # pour chercher tous les mots composés # d'une majuscule suivi d'une minuscule

/[^a-z][^A-Z] # Idem.

/t* # recherche de tous les mots composés # de t

Structure d'un Makefile

Contrairement à ce qu'il parait, c'est la manière la plus sûre d'installer une application qui fonctionne et de la compiler soimême. Cette astuce consiste uniquement à vous habituer à lire un fichier Makefile. C'est utile lorsqu'une compilation ne fonctionne pas. Exemple (très simplifié) :

# Makefile compilant prog

# Première étape, définition des variables

# qui serviront tout au long du fichier

# Vous pouvez les modifier si vous y trouvez une

# erreur

CC = gcc

CFLAGS = -O

# Les cibles que l'on atteint avec un "make cible"

# sont ensuite définies avec le nom suivi de :

# all est une cible courante qui permet de tout faire

all : prog

# Pour les cibles qui suivent on lira, par exemple pour

# fichier1.o que le fichier fichier1.c dépend du # fichier

# fichier1.c et que pour obtenir fichier1.c on # exécute :

# gcc ­O ­c fichier.c

prog : fichier1.o fichier2.o fichier3.o

$(CC) $(CFLAGS) -o prog fichier1.o fichier2.o \fichier3.o -lm

fichier1.o : fichier1.c

$(CC) $(CFLAGS) -c fichier1.c

fichier2.o : fichier2.c

$(CC) $(CFLAGS) -c fichier2.c

fichier3.o : fichier3.c

$(CC) $(CFLAGS) -c fichier3.c

# cette cible est courante et permet de nettoyer

# les fichiers qui ne servent plus après installation (*.o par # exemple)

clean :

rm -f prog *.o core


© Copyright 2000 Diamond Editions/Linux magazine France. - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License".