Puis-je installer Linux sans créer de partition ?
Oui, c'est possible grâce à UMSDOS
.
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
...)
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 :
S
;single
;init=/bin/sh
.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) :
root:RuN0C/zyWvkf2:0:0:root:/root:/bin/bash
root::0:0:root:/root:/bin/bash
/etc/shadow
.
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 :
password
et restricted
de LILO
(ne pas négliger qu'il faudra, lors du démarrage, composer le mot de passe
avec un clavier configuré en QWERTY) ;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.).
La session de travail semble parfois bloquée, le terminal ne produit rien et n'accepte plus rien (aucune touche ne fonctionne).
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.
Existe-t-il des virus actifs sous Linux ?
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 ".
Le shell en prend pas en compte un exécutable placé dans un répertoire qui
figure pourtant dans le PATH
.
Il faut obliger le shell à explorer le contenu des répertoires du
PATH
.
hash -r
;rehash
..tar.gz
(archive)
Qu'est-ce qu'un fichier .tar.gz
et comment l'utiliser ?
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
.
tar tvzf NOM.tar.gz
pour obtenir la liste des fichiers
contenus dans l'archive ;tar xzf NOM.tar.gz
pour décompacter l'archive dans le répertoire
courant.Il est temps de lire un bon document destiné à l'utilisateur débutant d'un Unix moderne...
Qu'abrite le répertoire /proc
?
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...
loadlin
)
Comment fixer les paramètres que LILO ou loadlin
devront passer au noyau ?
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
) :
Control
enfoncée alors que le démarrage sur disque commence. LILO prend la main et
affiche :
LILO boot:
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"))
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
.
LILO
prompt
au fichier de configuration
/etc/lilo.conf
pour que LILO affiche systématiquement sa chaîne
d'appel ;timeout
afin de limiter le
nombre de secondes d'attente de LILO après affichage de sa chaîne d'appel.
Exemple : "timeout=50"
provoque un délai de 5 secondes.rpm, deb, pkg
)
Comment profiter, sur une distribution X, des paquetages destinés à une autre distribution ?
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.
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 ?
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/.. "
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
...?
Solution fournie par J.C. Richard :
rescue
. Puisque tu as la Red Hat, utilise
la disquette de boot fournie, mais tape rescue
quand lilo
te demande ce que tu veux ;hda1
à hdc1
pour t'expliquer la méthode.
mkdir /mnt/tmp
mount /dev/hdc1 /mnt/tmp
cd /mnt/tmp/etc
vi fstab
(remplace alors tes occurences de /dev/hda1,2,3,4
par
/dev/hdc1,2,3,4
)
vi lilo.conf
boot=/dev/hda (pour avoir lilo en MBR)
map=/boot/map
install=/boot/boot.b
prompt
image=/boot/vmlinuz
label=linux
root=/dev/hdc1
read-only
et tout le reste de ton lilo.conf
est à modifier dans le même sens,
si tu as des partitions Dos, NT et autres à installer ;loadlin
en lui indiquant le montage root=/dev/hdc1
;
mount root=/dev/hdc1
lilo
. Tout est réparé.
Comment déterminer quel processus utilise une ressource donnée (fichier, donc par extension périphérique) ?
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
.
Mon horloge système avance ou retarde, que faire ?
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
.
Utiliser l'option de LILO loader=/boot/any_d.b
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.
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.
/dev/hdc
) contient le nom du fichier spécial
associé au périphérique ;/mnt/cd
) le nom du répertoire où le montage sera
effectué (il DOIT exister !) ;iso9660
pour un CD-ROM, vfat
pour une partition MS-DOS ;noauto,user [...]=033
) les options de montage ;
noauto
:Pas de montage automatique lors du boot.
user
:Montable/démontable par un utilisateur (c'est ce qui nous intéresse).
exec
:Les binaires placés sur ce support seront exécutables.
ro
:Lecture seule (Read-Only).
umask
:" permissions " du répertoire de montage (033 permet à tous de lire).
0
) la fréquence des sauvegardes par
dump
: laisser 0 dans le cas d'un volume amovible ;0
) le rang de passage à fsck
: laisser 0
dans le cas d'un volume amovible ;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
Comment mieux employer les consoles virtuelles ?
chvt
permet de changer de console active ;setterm
pour établir les paramètres ;tty
affiche le nom du périphérique connecté à la console
active.
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 :
zlibc
est une bibliothèque qui intercepte les appels à la
fonction open()
, et reconstitue " à la volée " les fichiers compressés
auparavant par gzip
. Toutefois, ce paquetage ne permet pas l'exécution de
fichiers binaires compressés ;tcx
est un bon complément de zlibc
, puisqu'il ne décompresse que
des fichiers exécutables ;DouBle
est un patch pour les noyaux 1.2.x (je se sais pas
s'il fonctionne avec les 2.x). Il s'agit d'un pilote de périphérique,
effectuant une compression des données à la volée. Il s'intercale entre le
périphérique physique et le système de fichiers (ou même la partition de
swap).Pour accèder aux volumes compressés d'une partition MS-DOS, il y a plusieurs possibilités :
Dosemu
;thsfs
est un module permettant de monter des partitions MS-DOS
normales ou des volumes Double Space, en lecture seulement ;dmsdosfs
est un système de fichiers permettant un accès en
lecture/écriture aux volumes compactés :
DoubleSpace
et DriveSpace
de MS-DOS 6.x ;DoubleSpace
et DriveSpace 3
de MS-Windows 95 ;Stacker
3 et 4.DriveSpace 3
et
Stacker 3
. Il fonctionne avec les noyaux 2.0.xftp.lip6.fr
dans fr.comp.os.linux.annonces
(élimination, article, suck
)
Comment ne pas recevoir les articles de HOWTO postés dans
fr.comp.os.linux.annonces
?
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
Comment ajouter une entrée dans /dev
?
À 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 :
MAKEDEV
ou
mknod
. Lire le fichier " Documentation/devices.txt " livré avec les
sources du noyau afin de déterminer les paramètres adéquats ;/dev
n'est
pas suffisant, il faut aussi que le pilote de périphérique nécessaire soit
disponible (compilé dans le noyau ou sous forme de module).
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.
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