Administration système GNU/Linux Marc GILG IUT COLMAR UHA 1
Le compte super utilisateur Le compte d'uid 0 est le compte du superutilisateur. Il porte souvent le nom de root. Le prompt du root contient un # Le super utilisateur a des super pouvoirs, à utiliser avec de super précautions. On ne travaille pas avec le compte root! 2
Commandes de base man <commande> : manuel de linux ls : liste un répertoire cd : change de répertoire more : afficher le contenu d'un fichier vim <fichier> : édite un fichier rm <fichier> : efface un fichier cp <fichier> : copie un fichier sudo < s commande> : exécute un shell ou une commande sous root 3
Architecture Linux User mode Applications Textes Applications Graphiques Window manager Shell X window X11 Kernel Mode Noyau Matériel Modules 4
Noyau Linux Le noyau (kernel) d'un système d'exploitation est la partie fondamental qui gère les ressources matériels et permet la communications entre elles et avec les logiciels. Le noyau fournit des mécanismes d'abstractions du matériel, notamment de la mémoire, du processeurs et des échanges des logiciels avec le matériel. 5
Fonction du noyau communication entre les logiciels et le matériel gestions des divers tâches (logiciels) : lancement des programmes, ordonnancement,... gestion du matériel (mémoire processeurs, périphériques, stockage,..) 6
Ordonanceur Les commandes nice et renice permettent de définir la priorité d'un programme. Les valeurs sont de 20 à 19, les plus faibles sont les plus prioritaires. Les valeurs négatives sont réservées à l'administrateur. 7
Mémoire 8
Noyau monolithique 9
Modules Blocs de codes pouvant être chargé dans le noyau Modules = drivers pour les périphériques Chargement dynamique Ils peuvent mettre en péril le système. Ils dépendent de la version du noyau Ils se trouvent dans initrd ou /lib/modules Commandes lsmod, modprobe, insmod Fichier de configuration : /etc/modprobe.conf 10
Répertoires /proc et /sys Les répertoires /proc et /sys sont des répertoires virtuels qui représentent l'état du noyau. Ils permettent d'influer sur le comportement du noyau : par exemple d'activer le routage. Chaque processus y est représenté par un répertoire dont le nom est le numéros de processus. 11
Périphériques Les périphériques sous Linux sont représentés par un fichier On les manipules comme un fichier ordinaire Les fichiers se trouvent dans /dev Exemple : /dev/hda : un disque /dev/sdb1 une partition /dev/psaux : le port PS/2 /dev/ttys0 : le port série com1 12
Périphériques réseaux L'interface local est identifiée par /dev/lo Les cartes ethernet sont identifiées par eth : /dev/eth0 /dev/eth1... Les cartes wifi sont identifiées par wifi : /dev/wifi0 /dev/wifi1... Les cartes ethernet virtuel sont identifiées par tap : tap0 La commande ifconfig a liste les cartes réseaux La commande iwconfig liste les cartes réseaux wifi. 13
Virtualisation KVM La virtualisation KVM permet d'exécuter un OS windows, Linux ou Unix sur une machine Linux. KVM : Kernel based Virtual Machine KVM utilise les capacités de virtualisation des processeur INTEL ( VMX) ou ADM (SVM) KVM utilise un module pour les noyaux 2.6 KVM fournit: Une interface de gestion de la virtualisation /dev/kvm Une émulation d'un PC x86 14
Architecture KVM Normal User Process Normal User Process Guest mode Guest mode Qemu I/O Qemu I/O Linux Kernel KVM Driver 15
Exemple KVM Création d'un disque virtuel : kvm img create <fichier> <taille> Démarrage de KVM avec une image iso d'un cdrom d'installation : kvm hda <fichier disque> cdrom <fichier iso> boot d Touches actives : Ctrl alt f : mode plein écran Ctrl alt : libère la capture de la souris et du clavier Ctrl alt n : commute vers la console virtuel 'n' 16
Bibliothèques En informatique, une bibliothèque logicielle est un ensemble de fonctions regroupées pour réaliser un groupe de tâches du même domaine. Les bibliothèques logicielles se distinguent des exécutables dans la mesure où elles ne sont pas complètes, elles ne possèdent pas l'essentiel d'un programme comme une fonction principale et par conséquent, elles ne peuvent pas être exécutées directement. Les bibliothèques peuvent regrouper des fonctions simples (par exemple le calcul d'un cosinus, ou l'inversion d'une matrice) comme des fonctions complexes avec de nombreuses fonctions internes non accessibles directement. Généralement, l'intérêt des bibliothèques réside dans le fait qu'elles peuvent être partagées par plusieurs exécutables. fr.wikipédia.org 17
Bibliothèques statiques et dynamiques Dans Linux, on utilise deux types de bibliothèques : Les bibliothèques statiques : Elles sont chargées en mémoire en même temps que le programme. Elles augmentent la taille du programme et ne sont pas réutilisables par d'autres Elles permettent d'avoir des logiciels «self content» Les bibliothèques dynamiques : Elles sont chargées en mémoire en fonction de la demande Elles peuvent être réutilisées par différent programmes Certaines peuvent être partagées simultanément par plusieurs programmes Elles doivent être installées en une version compatible avec le programme qui les utilise. 18
Bibliothèques dynamiques Elles ont l'extension.so (shared object) Leur localisation est définie dans : /etc/ld.so.conf Le programme ldconfig [ v] crée des liens symboliques en fonction des versions : libcspi.so.0 > libcspi.so.0.10.11 Le logiciel ldd <programme> permet de voir les bibliothèques utilisées par programme. Le logiciel strace <commande> permet de voir les appels systèmes. 19
Niveau de fonctionnement Le run level ou niveau de fonctionnement permet au démarrage du système de choisir les programmes qui seront lancés. Il y a 7 niveaux. Certains sont standards : 0 : Arrêt 1 : Mode monoutilisateur 6 : redémarrage du système Le mode par défaut est défini dans /etc/inittab On peut changer de mode avec la commande : init <level> exemple init 1 20
Scripts de lancement Les script de lancement sont dans /etc/init.d Pour chaque niveau de fonctionnement, il y a un répertoire /etc/(rc.d)/rcx.d dans chaque répertoire, il y a des liens vers les applications de /etc/init.d un lien commençant par K<numéro> est appelé à l'arrêt dans l'ordre donné par le numéro. un lien commençant par S<numéro> est appelé au démarrage dans l'ordre donné par le numéro. Les liens se gèrent à l'aide de la commande update rc.d 21
Périphériques de stockage Les périphériques de stockages sont représentés par les fichiers /dev/hdx pour les disques IDE et /dev/sdx pour les disques SCSI. Les partitions sont représentées par un fichier avec numéro. Exemple : /dev/hda1 Sur chaque partition, un système de fichiers décrit la façon dont les données y sont écrites. Linux gère plusieurs types de système de fichiers : ext2/ext3, vfat, xfs, swap,... 22
Organisation des fichiers Sous Linux, les fichiers sont disposés dans un arbre. Le sommet est la racine /, les nœuds des répertoires et les feuilles des fichiers. Une branche peut être une partition. / hda1 hdb3 etc usr home var ld.so.conf 23
Droits des fichiers Chaque fichier appartient à un utilisateur Chaque fichier appartient à un groupe $ls -l -rwxr-xr-- 1 user group 2580 1999-01-04 21:03 essai.sh rwx r-x r-- lecture écriture exécution pour le propriétaire lecture exécution pour le groupe lecture pour les autres 24
Droits des fichiers (2) Représentation par bites : r w x Propriétaire 400200100 Groupe 40 20 10 Autre 4 2 1 La commande chmod change les droits : Attention, les commandes suivantes ne sont pas équivalente : chmod g+rw fichier chmod 060 fichier La commande chown change le propriétaire 25
Les partitions Connaître le liste des partitions la commande df permet de connaître les partitions utilisées la commande fdisk l </dev/sdx> permet d'avoir la liste des partitions sur un disque. la commande parted permet de manipuler les partitions (redimensionner par exemple) la commande gpart permet de retrouver des partitions sur le disque 26
Système en lecture seule Pour corriger un système de fichiers, il faut d'abord le monter en lecture seule. Pour cela, il est nécessaire utilisé un live CD (knoppix) ou de passer en mode mono utilisateur (init 1) La commande suivante démonte et remonte en lecture seule la partition racine / : mount n o remount, ro / La commande suivante démonte et remonte en lecture écriture la partition racine / : mount n o remount, rw / 27
Corriger le système de fichiers La commande e2fsck permet de réparer les systèmes de fichiers ext2 ou ext3. option f : force la vérification du système option n : ouvre en lecture seul le fichier et répond «non» à toutes les réponses. option p : répare automatiquement le système de fichiers. ATTENTION : il doit être en lecture seule! e2fsck f n /dev/sda1 e2fsck f p /dev/sda1 28
Réparer un superblock Le superblock contient des informations indispensables au système de fichiers : taille des blocs, etc... Il existe une copie tous les 8ko. la commande suivant permet de récupérer une copie du superblock : e2fsck /dev/sda1 b (8192*n+1) Exemple : e2fsck /dev/sda1 b 16385 Pour marquer les secteurs défectueux : e2fsck c /dev/sda1 Autre commande de réparation : debugfs 29
Les fichiers journaux Les fichiers journaux (logs) permettent de garder une trace de l'activité du système. Ils se trouvent en général dans /var/log Le service syslog permet de rediriger les logs vers des fichiers ou des terminaux. Le service logrotate permet la gestion des fichiers journaux La commande dmesg affiche les log du noyau. La commande last permet de voir les dernières connexions d'un utilisateur. 30
Le service syslog Le démon syslogd [ r] reçoit des logs des autres services et les trie. L'option r active le service réseau sur le port 514 udp. Il est configuré par le fichier /etc/syslog.conf La syntaxe est Service.Priorité Destination Exemple : mail.info /var/log/mail/info.log Les services sont : auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, syslog, user, uucp, local0,..., local7 Les priorité sont : debug, info, notice, warn, err, crit, alert, emerg, panic La destination est un fichier, une console, ou un serveur 31
Le service logrotate Le service logrotate automatise la permutation, la compression, la suppression, et l'envoi des journaux. Il se configure par le fichier /etc/logrotate.conf Exemple : /var/log/messages { rotate 5 weekly } postrotate /sbin/killall -HUP syslogd endscript 32
Gestion des groupes La commande groupadd permet de créer un groupe d'utilisateur. La commande groupdel permet de supprimer un groupe. La commande groupmod permet de modifer l'appartenance à un groupe. La commande groups permet de voir les groupes auxquels appartient un utilisateur. Les informations sur les groupes sont dans le fichier /etc/group et /etc/gshadow 33
Gestions des utilisateurs La commande useradd permet de créer un utilisateur. La commande userdel permet de supprimer un utilisateur. La commande usermod permet de modifier les paramètres d'un utilisateur. La commande users permet d'afficher le nom de l'utilisateur. Le répertoire /etc/skel contient le modèle d'un répertoire d'utilisateur. Le fichier /etc/nsswitch.conf définit l'emplacement des informations des utilisateurs, par exemple /etc/passwd et / etc/shadows ou LDAP... 34
Pluggable Authentification Modules En informatique, Pluggable Authentication Modules (modules d'authentification enfichables, en abrégé PAM) est un mécanisme permettant d'intégrer différents schémas d'authentification de bas niveau dans une API de haut niveau, permettant de ce fait de rendre indépendants du schéma les logiciels réclamant une authentification. wikipedia.fr 35
Modules PAM Il existe quatre types de modules PAM : Les modules auth qui assurent l'authentification par exemple la vérification du mot de passe. Les modules account qui vérifient si l'authentification est autorisée, par exemple en fonction de l'heure Les modules password pour la gestion des mots de passes, par exemple vérification de la complexité Les modules session qui effectuent des actions une fois authentifié, par exemple le montage d'un répertoire. 36
Fichiers pour PAM Le répertoire /lib/security contient les modules PAM. Le répertoire /etc/pam.d contient la configuration de PAM pour différents programmes. 37
Gestion des paquetages Un paquetage ou paquet est une archive comprenant les fichiers informatiques, les informations et procédures nécessaires à l'installation et à la désintallation d'un logiciel sur un système d'exploitation. Ils sont particulièrement utiles pour gérer la dépendance entre les logiciels et les bibliothèques. Chaque distribution GNU/Linux a son système de gestion de paquetages : deb, rpm, tgz,... 38
Classifications Debian Les paquetages Debian sont classés : selon les distributions : stable, testing, unstable, experimental selon les licences : main, non free et contrib selon les droits à l'exportation: us et non us selon les niveaux de priorité : required à extra selon des sections : admin, base, devel,... selon le type : source ou binaire et architecture 39
Paquetages Debian Les paquetages Debian ont une extension.deb Leur nom est de la forme : nom_version_architecture.deb Les paquetages Debian sont des archives au format ar Les paquetages Debian contiennent les fichiers debian binary : version du système de paquetages control.tar.gz : scripts d'installation,..., informations data.tar.gz : les fichiers à installer 40
Configuration de apt Les commandes apt permettent de gérer les paquetages. Ils se configurent dans /etc/apt/apt.conf Les sources sont configurées dans /etc/apt/souces.list, en voici un extrait : # See sources.list(5) for more information, especialy # Remember that you can only use http, ftp or file URIs # CDROMs are managed through the apt-cdrom tool. deb http://http.us.debian.org/debian stable main contrib non-free deb http://non-us.debian.org/debian-non-us stable/non-us main contrib non-free deb http://security.debian.org stable/updates main contrib non-free # Uncomment if you want the apt-get source function to work #deb-src http://http.us.debian.org/debian stable main contrib non-free #deb-src http://non-us.debian.org/debian-non-us stable/non-us main 41 contrib non-free
Gestion des sources par apt Pour actualiser les sources on utilise la commande : apt get update Cette commande a pour effet de récupérer le fichier packages.gz qui contient les infomations des paquets et le place dans /var/lib/apt/lists/ Lors de l'installation, les paquetages sont placés dans /var/cache/apt/archives/ On peut y faire le ménage avec les commandes apt get clean et apt get autoclean 42
Information sur les paquetages apt file permet la recherche d'information apt file update : mise à jour des informations apt file search <texte> : recherche texte dans la description des paquetages apt cache permet la manipulation du cache apt cache search <texte> recherche texte dans les paquetages du cache apt cache showpkg <paquet> affiche des informations du paquet 43
Dépendances des paquetages la commande apt rdepends <paquet> permet d'afficher les dépendances de paquet la commande suivant permet d'avoir un graphe apt rdepends d <paquet> dot Tpng > graph.png 44
Installation et mise à jour La commande apt get install [ s] <paquet> permet d'installer le paquet, l'option s est pour faire une simulation. La commande apt get upgrade [ s] permet de faire une mise à jour mineur. La commande apt get dist upgrade [ s] permet une mise à jour majeur.elle permet l'ajout ou la suppression de paquets supplémentaires pour satisfaire les dépendances. La commande apt get remove <paquet> [ s] permet de supprimer un paquet. 45
Compilation de paquets On peut obtenir la source d'un paquet par la commande apt get source <paquet> cette commande crée plusieurs fichiers et répertoires sources. On peut obtenir les logiciels nécessaires à la compilation du paquet avec la commande apt get build dep <paquet> La commande fakeroot dpkg buildpackage exécutée dans le répertoire paquet permet de créer le paquetage binaire. 46
Les commandes dpkg dpkg i fichier.dep permet d'installer fichier.dep dpkg S /path/fichier permet de connaître à quel paquet appartient /path/fichier dpkg reconfigure <paquet> permet d'exécuter les scripts de configuration du paquet echo paquet hold dpkg set selections permet de marquer le paquet pour qu'il ne soit pas mis à jour. 47
Autres systèmes de paquetages RPM est un autre système de paquetages utilisé par Mandrake, Suse et RedHat RPM utilise les commandes urpmi La commande alien permet de convertir un paquetage rpm en paquetage deb Ubuntu utilise un système deb avec signature des paquetages. 48