:: News .:. Documents .:. Forum .:. Downloads .:. Bibliographie .:. Liens .:. Contact  :: 


Home
  :. News
  .: Documents
    .: Notions
    .: Protocoles
    .: Sécurité
    .: Architecture
    .: Prog
    .: Systèmes
  :. Forum
  .: Downloads
  :. Bibliographie
  .: Liens
  :. Contact

Chat

  Nickname:


irc: #guill.net

Forum



 
Administration d'un système Linux  
 

 

Unix est un système d'une telle complexité que nous ne pouvons tenir compte ici que des aspects essentiels.

Les commandes unix de base

A ce moment, nous disposons de 6 terminaux virtuel sur lesquels on peut se « loguer ». Ils sont accessibles en appuyant sur Ctrl + Alt + F1 à F6. Sur chacun de ces terminaux vous pouvez vous connecter et lancer des applications.

Les commandes

Man : Aide en ligne sur la commande

syntaxe : man  <cmd>
Il suffit alors de naviguer dans l'aide avec les touches <Page Up> et <Page Down> et <q> pour quitter.

Ls : liste le contenu d'un répertoire.

Syntaxe : ls -options  <répertoire a lister>
option :   a : montre les fichiers cachés
  l : format long (droit, propriétaire, groupe, date,...)
  r : récursif
  d : ne pas lister le contenu des répertoires.

Pwd : Affiche le répertoire actuel.

Cd : change de répertoire

syntaxe : cd <chemin>
chemin absolue  : /rep1/srep1/srep2


chemin relatif  : ../../srp2 (on remonte de 2 répertoires dans l'arborescence avant d'accéder au répertoire srep2)

mkdir : Création d'un répertoire.

Syntaxe : mkdir -options <répertoire>
option : p : permet la création de toute une arborescence.

Cp : Copie de un ou plusieurs fichiers / répertoires.

Syntaxe : cp -option <source> <destination>
option :   r : récursif ( nécessaire pour la copie de répertoires)
  a : copie (récursive) avec préservation des droits et propriétaires.

Rm : suppression de fichiers ou de répertoires.

Syntaxe : rm -option <fichier ou répertoires>
option : r : récursif (nécessaire pour supprimer un répertoire).
Important: La commande rm n'a pas de 'undelette', de plus en tant que « root » on passe outre tous les droits sur les fichiers et répertoires.

Mv : déplacement (cp +rm ) d'un fichier ou d'un répertoire.

Ln : permet de créer un lien sur un fichier.

Ln <target> <nom du lien>  => deux fichier pointant sur le même inode.(attention les deux doivent être sur le même système de fichier)
Ln -s <target> <nom du lien> => lien symbolique(allias)

tail : Affice « en temp réel » le contenu d'un fichier.

Tail -f /var/log/messages (Ctrl + C pour quitter)

grep : recherche d'une chaîne de caractère dans un fichier.

Grep root /etc/passwd
option : -v toutes les entrées qui ne contiennent pas la chaîne de caractère.

Tar : (gzip) compression des fichiers

tar cvzf <nom du fichier> <fichier à inclure>
tar xvzf <nom du fichier> -C <destination>
option : c création
 x decompression
 z utilisé gzip
 f force
 C destination de la décompression sinon.

Les caractères spéciaux des commandes

* comme sous DOS est un joker.
; permet de faire suivre les commandes sur une même ligne. Ex: cmd1; cmd2; cmd3
& à la fin d'une commande la lance en tache de fond et rend la mains en indiquant le numéro de processus correspondant.
| permet de renvoyer la sortie standard (écran) sur l'entrée standard de la commande suivante.

L'éditeur vi

A la base de l'administration sous Unix on trouve l'éditeur vi. Cet éditeur de texte en mode terminal d'apparence très basique a une multitude d'avantages.
Le but des manipulations suivantes, est de vous familiariser avec les commandes de base de l'éditeur vi. Nous allons l'utiliser tant que l'interface graphique n'auras pas été mise en place.

vi <nom du fichier a éditer>

Pour insérer du texte il suffit de déplacer le curseur la ou on le désire d'appuyer sur Esc puis sur i et on peut insérer du texte, à la fin de l'insertion on appuie sur Esc. De même on peut rajouter du texte avec a, supprimer un caractère avec x, supprimer un mot avec dm (delete word) ou encore remplacer un mot cw (change word). Si l'on tape un nombre x avant la commande celle-ci sera répétée x fois.

Quand on désire quitter l'application il faut taper :q si aucune modification n'a été apporte, :q! pour ne pas enregistrer les modification en quittant, :wq pour quitter en enregistrant et enfin :wq! Pour quitter et forcer l'enregistrement du fichier.

Un recherche de mot se fait avec /<mot recherché>, pour répéter la dernière commande il suffit de taper . Et pour integrer un fichier il suffit de faire :r <nom du fichier>

Même si cet éditeur semble antique, il rend d'immense service en cas de problème, c'est le seul diteur capable de fonctionner avec un environnement minimal. On prend conscience de son importance, la première fois qu'il vous « sauve la vie ».

Les utilisateurs

Tout d'abord il est primordial de savoir comment est identifiée une personne. Cela se passe dans le fichier /etc/passwd qui est formé d'une suite de lignes, formatées de la façon suivante :

login:Password crypté:UID:GID :commentaires:Répertoire personnel:shell

- Le login est l'identifiant de la personne.
- Le password est dans tout les cas un x car le password crypté est contenu que dans /etc/shadow avec des informations sur l'âge du password et sa durée de vie. /etc/shadow n'est en lecture/écriture que pour root alors que /etc/passwd est en lecture seul pour tout le monde.
- L'uid est l'identifiant numérique de la personne et le GID l'identifiant numérique du groupe d'appartenance.


- Les commentaires permettent de rajouter des information concernant la personne.
- Le répertoire personnel est le répertoire de base de l'utilisateur.
- Le shell est la commande qui sera exécute lorsque la personne se sera connectée. Il existe différents shell sous unix, le plus basique est sh qui est commun à tous les unix. A cote on trouve des shell tel que csh, tcsh, ksh. Sous linux le shell par defaut est le BASH (Bourne Again Shell).

Les groupes sont définis dans le fichier /etc/group est possèdent un fichier /etc/gshadow ou sont conservé les password cryptés des différents groupes.

Les fichiers de logs

Tout les process tournant sous linux peuvent envoyer des informations sur leur fonctionnement grâce a un process nommée syslog. Celui-ci se configure avec le fichier /etc/syslog.conf. Il redirige l'ensemble des messages vers un fichier désigné.

mail.*    -/var/log/mail

Ici l'ensemble des informations de mail seront envoyé dans le fichier /var/log/mail.

De plus il faut savoir que l'ensemble des informations du système *.* sont envoyé dans le fichier /var/log/messages.

Pour suivre le fonctionnement d'un process on peut suivre sont fonctionnement grâce a la commande : tail -f /var/log/messages | grep <process>

Amorçage et arrêt d'un système

Une machine sous Linux ou tout OS a besoin d'être arrêter proprement, pour cela on utilise la commande halt qui permet un arrêt des différents services . La commande reboot ajoute un redémarrage de la machine.

L'amorçage et l'initialisation d'un système UNIX est une phase importante. Ce chapitre est une brève introduction au concept de démarrage de Linux. Ce concept est plus complexe mais aussi plus souples que celui de la plupart des autres systèmes. Il est basé sur le concept d'amorçage d'une station de travail moderne sytem V.

Suite a la lecture des informations contenu sur le secteur d'amorçage du disque (mis en place par lilo) le noyau linux va être lu. Le noyau prend les commandes de la totalité du matériel du système. Il vérifie et installe la console pour lire ensuite les configurations dans le BIOS et initialise les  interfaces lémentaires de la carte mère. Au cours des phases suivantes, les différents pilotes - qui font partie des éléments qui constituent le noyau - 'testent' le matériel présent pour l'initialiser le cas échéant.

Après le 'contrôle des partitions' et le montage du système de fichier racine, le noyau lance le programme /sbin/init qui démarre le système proprement dit avec ses nombreux programmes utilitaires et leur configuration. Le noyau continue à gérer la totalité du système, c'est à dire le temps CPU des différents programmes et leur accès au matériel.

Le processus /sbin/init est le processus responsable de l'initialisation du système; il est le père de tous les processus' du système. Pour tous les programmes, init joue un rôle particulier: il est lancé directement par le noyau et il est immunisé contre le signal 9 avec lequel on peut normalement 'tuer' tout processus. Les autres processus sont lancés soit par lui-même, soit par l'un de ses 'processus fils'.

Init est configuré centralement au moyen d'un fichier /etc/inittab; c'est ici que les 'runlevels' (niveaux d'exécutions) sont définis et qu'il est déterminé ce qui doit se passer à chaque niveau.

En fonction des entrées du fichiers /etc/inittab, différents scripts, regroupés pour plus de clarté dans /etc/rc.d, sont lancés par init.

Le démarrage complet du système - et bien sur aussi son arrêt - est ainsi piloté par le seul processus init. On peut donc considérer le noyau comme un 'processus en arrière plan' chargé de gérer les processus qui tournent, de leur allouer le temps CPU, d'autoriser et de contrôler l'accès au matériel.

Les niveaux d'exécutions

Sous Linux, il existe différents niveaux d'exécutions (runlevel) qui définissent l'état que doit avoir le système. Le niveau d'exécution par défaut dans lequel le système démarre au moment de l'amorçage est déterminé dans le fichier /etc/inittab par l'entrée initdefault. Habituellement c'est 2 ou 3.

Run Level Signification
0
Arrêt (Commande halt)
S
Mode mono-utilisateur ou mode maintenance (console d'administration)
1
Multi-utilisateur sans la couche reseau
2
Multi-utilisateur avec reseau
3
Multi-utilisateur avec reseau et xdmcp
4
Libre
5
Libre
6
Réamorcage (commande reboot)

Pour passer ultérieurement à un autre niveau d'exécution, on peut tout simplement lancer la commande init avec le numéro du niveau d'exécution correspondant. Bien entendu, le passage dans un autre niveau ne peut être requis que par l'administrateur du système (root).

Pour cela il suffit de taper la commande init <numéro de runlevel>

Vous pouvez tester cette commande en basculant entre les runlevels S,1 et 2. évitez l'init 3 si vous n'êtes pas sur et certain du bon fonctionnement de votre interface graphique, tout comme les runlevel 4 et 5 qui ne contiennent rien.

Ces niveaux d'exécutions permettent aussi de sélectionner différentes configurations. Vous pouvez voir les scripts dans le répertoire /etc/rc.d. Vous avez ici une liste de tous les scripts qui peuvent être lancés au démarrage du système. Les répertoires rcx.d contiennent des liens vers les scripts qui seront lancés lorsque qu'un runlevel sera invoqué.

Ainsi dans /etc/rc2.d/rc2.d le script S05network indique que le script /etc/rc.d/network sera lancé (S Start /K Kill) en cinquieme position (05) lorsque le niveau 2 sera invoqué.

Récapitulatif de la séquence de démarrage :

Le système X-Window

Le système X-Window est pratiquement devenu le standard d'interface graphique pour les systèmes Unix. Et même bien plus encore car X11 est un système basé  sur le réseau. Les applications qui tournent sur une machine peuvent être affichées sur une autre si les deux ordinateurs sont connectes via un réseau. Ce réseau peut être local ou étendu comme Internet.

Il est bon de faire la différence entre serveur X qui ne sert qu'a afficher les graphiques et  le window manager qui s'occupe de la gestion des fenêtres et de l'affichage à l'intérieur de celles ci.

Il existe un serveur X pour une carte graphique mais plusieurs window manager dont les plus connus sont KDE, Gnome, Enlightement, WindowMaker , CDE,etc...

Actuellement il existe trois façon de configurer le serveur X :

xf86config : une version en ligne de commande très peu esthétique mais extremement efficace.
XF86Setup: Interactif en mode graphique simple mais efficace.
saX : Interactif mais encore en cours de développement.

Avant tout si l'on ne connaît pas les caractéristiques de la carte graphique il existe une commande pour voir si le matériel est reconnu, il s'agit de SuperProbe qui va essayer de déterminer les caractéristiques de la carte graphique.

Nous allons pour notre part utiliser SaX2. L'avantage est que le matériel est détecté automatiquement. Il est donc simple de configurer X- Window . Après avoir lancé sax2 , il suffit de 'cliquer' sur continuer après avoir vérifier que le matériel sélectionné est bien le bon. Si tel n'est pas le cas, on sélectionne manuellement dans la liste. Pour le moniteur une résolution 16 bits en 1280x1024 donne de bon résultats. Une fois la configuration faite (création du fichier /etc/X11/XF86Config).

Si un problème survient il suffit d'appuyer sur Ctrl + Alt + Backspace pour arrêter le serveur X et rebasculer en mode console.

Une fois la configuration validée il ne reste plus qu'a tester le fonctionnement de X-WINDOW en le lançant grâce a la commande startx.

Maintenant vous pouvez explorer les différents menus de KDE qui est le  window-manager par défaut sur SuSE Linux. A vous de découvrir les différents outils mis a votre disposition dans les barres de menus.

Ensuite nous allons mettre en place le login graphique. Pour cela on lance kdmconfig dans un terminal ou directement à partir de la barre de tache. Les paramètres sont assez parlant, les modifier si nécessaire. Pour tester le bon fonctionnement du login graphique, il faut quitter X-Window et lancer rcxdm (init 3) après avoir définit la bannière KDE comme bannière de login par défaut (yast). Se loguer et revenir en runlevel 2(Cf chapitre précèdent). Il ne reste plus ensuite qu'a définir que le login doit toujours se faire en mode graphique. De plus en mode graphique on peut toujours accéder à l'un des six terminaux virtuel en utilisant Ctrl + Alt + F1 à F6 et revenir au mode graphique avec Alt + F7.

Le noyau et les paramètres du noyau

Le noyau présent actuellement sur le système - et que l'on retrouve dans /boot/vmlinuz - est configuré de telle manière qu'il supporte une gamme étendue de matériel.
Ce noyau n'est donc pas construit spécialement pour votre système et il est plus avantageux - bien que ce ne soit pas absolument indispensable! - de générer un noyau.

Pour la création d'un nouveau noyau, il existe déjà des procédures qui permettent d'automatiser presque entièrement la compilation. Seules les questions posées au sujet du matériel que doit supporter le noyau doivent être traitées en mode interactif.

Pour construire un nouveau noyau, il est nécessaire d'avoir installé aussi bien les sources du noyau que le compilateur C et les fichiers 'include' pour le compilateur C. Les sources du noyau se situe dans le répertoire /usr/src/linux.

Pour compiler le noyau il faut d'abord ouvrir un terminal, se rendre dans le répertoire /usr/src/linux. Ensuite entrer la commande make xconfig qui va permettre de configurer le noyau. Les options disponibles sont

m : module du noyau
y : integrer dans le noyau.
n : n'est pas present.

Ensuite on revient au menu précèdent en sélectionnant Main Menu et on 'clique' sur save and exit. Après il ne reste plus qu'a rentrer la commande make dep clean bzImage qui correspond à la vérification des dépendances, l'effacement des fichiers qui ne sont plus nécessaires et la compilation. Ensuite exécuter la commande make modules modules-install qui va créer les modules et les installer dans le répertoire /lib/modules/<version de linux>. Ensuite il suffit de faire un make bzlilo pour obtenir une nouvelle version du noyau directement dans répertoire /boot.

Avant d'installer le nouveau noyau il est bon de faire une copie de sauvegarde de l'ancien. Pour cela allez dans le répertoire /boot et copiez vmlinuz.old en  vmlinuz.org.

Ensuite nous allons lancer YaST et aller dans Administration Système puis Configuration du noyau et amorçage puis configurer LILO pour créer une nouvelle entrée dans lilo. Cette nouvelle entrée s'appellera rescue et prendra un noyau optionnel qui sera notre noyau de sauvegarde /boot/vmlinuz.org. Ceci est nécessaire et permet en cas de dysfonctionnement du nouveau noyau de redémarrer avec un noyau valide. Ensuite il suffit de valider et de quitter yast. Maintenant il ne reste plus qu'a copier notre nouveau noyau dans le répertoire /boot avec un simple cp /vmlinuz /boot/vmlinuz et de lancer la commande lilo pour que lilo soit mis à jour. Il suffit de redémarrer la machine pour vérifier que le nouveau noyau marche et fonctionne bien.

Montage des systèmes de fichiers

Les systèmes de fichiers sous unix ne sont pas comme sous windows représentes par une lettre mais ils sont montés sur un répertoire c'est a dire que l'on ne voit que des répertoires. Donc dans notre cas il faut comprendre comment linux voit les partitions de la machine.

La commande pour le montage de périphériques :
mount -t  <type de filesystem>   <partition>     <point de montage>
ou le type de filesystem peur être ext2 (linux), msdos (DOS 8+3), vfat (DOS ) avec les noms longs), iso9660 (CR-ROM). Attention les types de filesystem doivent être déclaré dans le noyau. Pour démonter le système de fichiers il suffit de taper umount  <point de montage>.

Par exemple pour monter une disquette il faut entrer la commande :
mount -t ext2 /dev/fd0 /floppy
et umount /ftoppy pour la démonter

Les entrées peuvent être faites automatiquement grâce au fichier /etc/fstab qui contient la liste de répertoires à monter. Dans le fichier fstab actuel que vous pouvez éditer, il existe une entrée pour la disquette donc il suffit en fin de compte de taper la commande mount /floppy pour monter la disquette (les autres paramètres étant lu dans le fichier fstab).

Installation de logiciel

Il existe 3 méthodes pour installer des logiciels sous linux.

La première est la mise en place de logiciels contenus dans le cd de la distribution. Pour cela il suffit de lancer yast, determiner/démarrer l'installation et de sélectionner les packages à ajouter ou à enlever.

La seconde est la mise en place de packages pré-compilé et mis au format rpm. Il suffit d'utiliser la commande rpm pour installer le package.
Rpm -<option> nom du package
option : i install
 e erase
 U update
 v verbose
 --nodeps sans vérification des dépendances.
La troisième est la compilation des sources mis à disposition.
La plupart du temps les sources sont au format .tar.gz, il faut d'abord décompresser le fichier : Tar xvzf fichier.tar.gz -C /tmp
Ensuite, il faut aller dans le répertoire créé pour lancer la commande ./configure.
Attention : on peut définir des options à la commande configure; pour en savoir plus tapez ./configure --help. Cette commande va vérifier que l'ensemble des librairies nécessaires sont présente sur le système et mettre à jour le fichier Makefiles en fonction. Ensuite lancer la compilation avec make et si tout se passe bien il suffit de lancer en tant que root la commande make install.

Jérome Chavin
 




Sondage

Quel est votre connexion à Internet aujourd'hui ?
 
RTC 56Kbps
ADSL simple de 128 à 2048 Kbps
ADSL + Téléphonie (+TV) de 128 à 2048 Kbps
ADSL simple jusqu'à 20Mbps
ADSL + Téléphonie (+TV) jusqu'à 20Mbps
Autres (RNIS, Satellites bi-directionnel...)
Total :
3241

Recherche


Docs
   Pflogsumm (Analyseur de log mail pour Postfix)
   Proftpd (Mise en service d'un serveur FTP avec proftpd sous Linux)
   Openldap (Mise en service d'un serveur LDAP sous Linux)
   Gestion des périphériques en c++ builder (Communication RS232 en C++ Builder)
   Les sockets windows (Windows Sockets : un cours accéléré)

guill.net©1999-2024