administration LINUX


Table of Contents

  1. historique
  2. le noyau linux
  3. distributions
  4. rpm (Redhat Package manager)
  5. la documentation
  6. gestion logicielle
  7. la séquence de boot
  8. les services
  9. le tcp-wrapper
  10. les consoles
  11. les logs
  12. le cron
  13. les outils d'administrations
  14. réparation

historique

but = faire un clone Unix pour architecture Intel x86 quelques dates : rem : la licence General Public Licence (très différent d'un freeware), lancée par la Free Software Fondation (Stallman), pour les produits GNU (gcc, emacs, ghostview, etc.)

le noyau linux

remarques :

la numérotation :

elle est du type x.y.z
la version majeure (1er chiffre ) change TRÈS TRÈS rarement
la version mineure (2ème chiffre) change rarement (une fois tous les 1 / 2 ans ?)
de plus, il y a 2 "lignées" de noyaux : le "sublevel" (3ème chiffre) change change plusieurs fois par an, et représente les modifications et patchs mineurs

il y a de plus des patch officiels (agréés par Linus) et non officiels, chaque distribution faisant ce qu'elle veut

conseils :

administration

/proc

 process information pseudo-filesystem : accès read/write au structures internes du noyau qui tourne :
on peut modifier comportement sans rebooter

packages


distributions

définition

linux == le noyau
distribution == tout le reste (shell, compilateurs, éditeurs, outils, jeux, etc. )

l'offre

il y en a beaucoup : plusieurs centaines, pas compatibles en général (arborescences), mais un effort d'homogénéisation est en cours.

on peut distinguer trois grands types de distributions

une idée du marché actuel (cf. lwn.net) : chargement des images ISO de distributions en Avril 2000 :
Redhat           31%    (sortie de la 6.2)
Mandrake     29%        (sortie 7.x)
Corel             22%        (sortie 1.0)
Debian             5%
Caldera            4%
FreeBSD            3%
SuSE               3%
Slackware           2%
Stormix            1%
Yellow Dog Linux    1%

gestion par package :

la plupart des "grands" Unix (Sun, HP) se sont mis a la gestion de package qui simplifie grandement l'administration des machines,
les distributions linux aussi, avec 2 grandes familles de produits

conseils pour un choix de distribution

mon choix

type d'installation

il y a en gros 4 solutions :

rpm (Redhat Package manager)

rem : outil développé sous licence G.P.L. et adopté par la plupart des distributions maintenant

permet la gestion de "packages", c'est à dire programmes, documentation, fichiers de configuration

avantages

inconvénients

Mais il est  possible de fabriquer relativement simplement un fichier rpm à partir d'un tar.gz, avec le programme autospec par exemple, pour conserver une base à jour

documentation

man rpm pour la documentation complète, sinon rpm pour la liste des arguments

exemples d'utilisation courante :

rpm -qf fichier : pour savoir à quel package appartient le fichier
rpm -qi package : description du package
rpm -ql package : liste des fichiers du package
rpm -qpi package.rpm : description et liste de fichiers contenu dans le fichier package.rpm
rpm -qa | grep -i kernel : recherche de tous les package dont le nom contient "kernel"

(pour les commandes suivantes, il faut etre root))
rpm -Uvh package  : installer le package
rpm -Fvh package  : mettre a jour le package s'il existe
rpm -e package : desintaller le package

remarques


la doc

comme tous les produits sous GPL, la documentation est très abondante

locale :

internet :

remarque :
La communauté linux est reconnue pour la qualité de son support technique via internet (meilleur support technique 1998 au USA).

gestion logicielle

libc

tous les programmes livrés sous linux (ou presque) sont codés en C, donc les exécutables sont linkés avec la libc
il faut savoir qu'il y a plusieurs versions de la libc, bien évidemment incompatibles

les "distributions" Redhat

on trouve  sur les sites miroirs de Redhat:
  1. la distribution courante
  2. les updates : mises à jour officielles de Redhat
  3. les powertools : compléments de la distribution de base
  4. les rawhide : versions bêtas (de tests) de packages de Redhat : pour usager averti
  5. les contrib : contributions  == packages fournis sans contrôle de Redhat : pour usager averti

update "automatique":

le logiciel autorpm permet d'informer des nouveautés (mode manuel) ou de mettre à jour  (mode automatique) sa machine par rapport aux sites miroirs de Redhat  (on peut rajouter d'autres sites / d'autres produits )

recherche de logiciels sur le web

mettre a jour un logiciel

toujours faire un rpm -K logiciel.rpm pour vérifier la bonne source du produit (signature de cryptage : gpg, MD5)
rpm -Fvh logiciel.rpm pour upgrader
si il y a des dépendances, mettre l'ensemble des fichiers rpm sur la ligne de commande

installer un nouveau noyau

doc : kernel-HOWTO
méthode :
  1. installer le nouveau noyau par rpm -ivh (surtout pas en update)
  2. créer une disquette de boot de secours ,des fois que : mkbootdisk
  3. ajouter les lignes qui vont bien dans /etc/lilo.conf    (recopier une image existante, modifier les lignes image et label)
  4. prendre en compte les modifs : lilo -v

compiler un nouveau noyau

doc : kernel-HOWTO, /usr/src/linux/README
pourquoi : méthode :
  1. cd /usr/src/linux/ : pour se positionner sur le répertoire de travail
  2. modifier le paramètre EXTRAVERSION du Makefile pour fabriquer une version différente de la version courante
  3. make mrproper (nettoyage)
  4. make menuconfig (ou xconfig) pour modifier le paramétrage du noyau
  5. make dep
  6. make bzImage
  7. make modules
  8. make modules_install
  9. copier l'image /usr/src/linux/arch/i386/boot/bzImage sur /boot/vmlinuz-version
  10. cd /usr/src/linux/
  11. cp System.map /boot/System.map-version
  12. enfin reprendre comme pour installer un nouveau noyau (lilo)

la séquence de boot

bios -> MBR -> boot loader -> noyau -> init -> fsck -> services

les services

les niveaux d'exécution : cf. /etc/inittab

# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)

en pratique : en usage courant, sur un serveur, on utilise le niveau 3, sur un poste client le niveau 5
pour certaines taches d'administration, on passe en niveau 1 (init 1 ou au boot  options single à lilo)

arrêter / démarrer un service :

rem : standard unix (HPUX, Solaris)

les scripts sont sur /etc/rc.d/init.d
avec des liens sur les répertoires de chaque niveau /etc/rc.d/rcx.d
les scripts qui commencent par K (kill) sont d'abord lancés pour arrêter le service correspondant
les scripts qui commencent par S (start) sont ensuite lances pour démarrer les services (ordre alphabétique)

configurer un service :

chkconfig

les tcp-wrappers

but : contrôler de façon homogène l'accès aux démons
doc : man hosts_access
config  : hosts.allow  hosts.deny inetd.conf
principe : les demandes sont trappées par le daemon inetd  , qui vérifie les droits d'accès puis lance le démon désire (ftpd, ipopd ...)
celui disparaît une fois le service termine

rem : il y a donc 2 façons de démarrer un démons


remarque : ne pas confondre avec pam, qui contrôle les autorisations (password)


les consoles

quel que soit le niveau d'exécution, on dispose de plusieurs consoles virtuelles en mode texte (par défaut 6),
on passe de l'une à l'autre par la séquence ALT+CONTROLE+F1 F2 ... F6
si l'on a lancé une session graphique (niveau 5 ou via la commande startx), la console graphique prends le numéro 7

les logs

sous /var/log, écrits en général par syslog

ménage

le package logrotate assure la rotation et l'effacement des log selon les critères désirés (delai, taille ...)
le package tmpwatch permet d'effacer des fichiers temporaires sur un critère de d'ancienneté

astuce

pour pouvoir "consulter" les log sans se connecter, rajouter dans le fichier /etc/syslog.conf les lignes :

# renvoyer tout sur la console  virtuelle 9
*.*                                                     /dev/tty9

ca peut être très utile, en cas de crash, ou de grosse charge machine (difficile de se connecter alors sans tomber en time-out), pour savoir ce qui se passe (ou s'est passé)


le cron

il y a sous /etc des répertoires spécifiques pour les taches d'administration classiques

les outils d'administrations

locaux

à distance

via une interface web :

réparation

après un crash, et si le redémarrage est impossible, il y a plusieurs solutions :
 

Eric Gerbier
2009-10-13 tux
documentation sous licence GNU Free Documentation License