CHAP 5 Administration des systèmes Flashcards

1
Q

Administration système
L’administrateur système est

A

la personne responsable
* des serveurs et postes informatique
* au niveau logiciel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Tâches habituelles de l’administrateur?

A
  • Installation et désinstallation des logiciels
  • Configuration des logiciels
  • Mise-à-jour des logiciels
  • Supervision des services logiciels

Autres tâches habituelles
* Configuration des disques, organisation des partions, etc.
* Gestion des sauvegardes et des restaurations (backups)
* Configuration des périphériques (écrans, claviers, souris, etc.)
* Ajout et suppression des utilisateurs
* Configuration des comptes utilisateurs
* Configuration du réseau
* Responsable de la sécurité des services administrés
Programmation?
* Pas nécessairement expert en programmation
* Capable de programmer et de comprendre les scripts shell
* Sait compiler et installer des programmes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Processus UNIX =
Un programme en cours d’exécution =

Un processus est un concept important du système d’exploitation

A
  • Le programme exécuté (fichier exécutable)
  • De l’état et des ressources (mémoire, CPU, etc)
  • Un utilisateur (et un groupe)
  • Un identifiant = numéro de processus (pid)
  • Un processus parent dont il hérite ses caractéristiques
  • Un début… et une fin
  • D’autres informations utiles à sa bonne gestion
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Isolation des processus ⋆
Les processus sont isolés les uns des autres

A
  • Un processus est autonome et cohérent
  • Plein de processus existent en même temps (multitâche)
  • Un processus ne peut pas corrompre un autre processus
    (du moins sans respecter les règles)
  • Un processus peut collaborer avec d’autres processus

Exemple de collaboration: tubes
$ grep lol /usr/share/dict/french | lolcat
2 processus: grep et lolcat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Lister les processus ⋆
Commande ps: instantané des processus

A

$ ps
PID TTY TIME CMD
4517 pts/3 00:00:00 bash
24535 pts/3 00:00:00 ps

Par défaut ps affiche la liste des processus
* De l’utilisateur courant
* Dans le terminal en cours
* Avec peu d’information
$ ps | head -n 50 | sort -n | grep ‘ ‘

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Arborescence des processus
Un nouveau processus est créé par un autre processus

A
  • Un créateur est appelé processus parent
  • Le premier processus (dit racine) n’a pas de parent
    C’est init (ou systemd) de PID=1
  • Sous UNIX la relation de parenté est préservée
    → On a une arborescence de processus

Commande pstree vue arborescente des processus (extra)
$ pstree -phT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Options de ps
Trois familles, plein d’options

A
  • Traditionelle (POSIX), avec un tiret « - »
  • BSD, sans tiret
  • Extensions extra, avec un ou deux tirets « – »
    → Beaucoup de confusion
    $ ps -eF
    $ ps aux
  • -e, -A afficher tous les processus
  • -f afficher plus de colonnes
  • -F afficher encore plus de colonnes (extra)
  • a tous les processus (avec un terminal)
  • ax tous les processus (même sans terminal)
  • u afficher des colonnes orientées utilisateur
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Information des processus
$ ps -F
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
jean 1435 356 0 3832 2960 7 15:24 pts/0 0:00 ps -F
$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
jean 252 0.0 0.0 384 353 tty1 R+ 10:08 0:00 ps u

A
  • UID (et USER): utilisateur du processus
  • PID: identifiant du processus
  • PPID: identifiant du processus parent
  • STIME (et START): date et heure de démarrage
  • CMD (et COMMAND): ligne de commande
    → Les autres colonnes une autre fois
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Autres options pratiques de ps
Filtrer
* -p par PIDs
* -C par noms de commande (extra)
* -u par utilisateurs
* -x par l’utilisateur courant (extra)

Afficher
* -o indiquer les colonnes voulues
* L lister les colonnes possibles (BSD)
* –forest affiche l’arborescence (extra)
* –sort trie les lignes (extra)

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Suivre en temps réel les processus
Commande top: processus en temps réel (extra)

A
  • Liste les processus par utilisation processeur
  • Interface interactive
  • Plein de commandes pour filtrer et trier

Quelques commandes
* q (ou Ctrl+C) quitter
* h affiche l’aide
* P trier par consommation CPU (défaut)
* M trier par consommation mémoire
* N trier par PID
* T trier par temps CPU total
* k terminer un processus

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Services et démons (daemon)
En général / souvent

A
  • Application qui attend et répond à un événement
  • Répond à des requêtes réseau et/ou locales
  • Pas invoqué explicitement, ne dépend pas d’un terminal
  • Processus démarré automatiquement par init ou systemd
  • Isolé dans des utilisateurs dédiés (dit système)
  • Nom terminé par d (pour daemon)

Exemples 
* init ou systemd: premier processus du système
* crond: planifie des tâches
* dhcpd: configuration TCP/IP automatique des clients
* httpd: sert les ressources HTTP
* sshd: accepte les connexions SSH entrantes
* lpd ou cups: gère les impressions
* gdm: gestionnaire de connexion graphique (Gnome display
manager)
* mpd: démon pour jouer de la musique

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Exemple: serveur web

A
  • Logiciel qui répond aux requêtes du World Wide Web
  • Utilise principalement le protocole HTTP
  • Voir chapitre 8 pour les détails

Apache
* Serveur web (HTTP) le plus utilisé 43% en octobre 2019
* Première version en 1995
* Site officiel: https://httpd.apache.org/
* Licence Apache 2.0

Nginx
* Une alternative à Apache, 2e plus utilisé, en croissance (30%)
* Première version en 2004
* Site officiel: https://nginx.org/
* Licence BSD

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Installation d’Apache
Sur Debian et ses dérivées (Ubuntu, Mint, etc.)
$ sudo apt update
$ sudo apt install apache2

A

apt est une interface du système de gestion de paquets (extra)

  • update télécharger les informations sur les paquets à partir des
    sources configurées.
  • install pour installer un paquet
  • upgrade (et full-upgrade) pour mettre à jour les paquets
  • remove (et purge) supprime un paquet
  • search, show, list cherche et affiche des paquets
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Paquet (ou paquetage) ⋆
Archive incluant

A
  • des fichiers binaires et textes
  • des informations et
  • des procédures

nécessaires à l’installation et à la désinstallation d’un logiciel sur un
système d’exploitation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Contenu d’un paquet

A
  • fichiers exécutables ou sources
  • fichiers de configuration
  • documentation
  • dépendances logicielles
  • scripts d’installation
  • scripts de désinstallation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Gestionnaire de paquets

A
  • L’approche recommandée pour installer un logiciel sous Unix
  • Installe et gère les programmes et fichiers accessoires
  • Gère les versions et les dépendances entre paquets
  • Permet de mettre à jour et de désinstaller proprement
  • Exemples: apt, dnf, pacma
17
Q

De nombreux langages de programmation fournissent aussi des
gestionnaires de paquets spécifiques à leurs écosystèmes

A

Exemples:
* pip: Python
* gem: Ruby
* cargo: Rust
* npm: Node.js (Javascript)
* cabal: Haskell

18
Q

Installer à partir des sources 
1 Télécharger le code source de l’application
2 Compiler l’application
→ Nécessite d’avoir déjà les compilateurs et bibliothèques
3 Installer l’application pour permettre son exécution
→ Par les gens (utilisateurs) ou automatiquement (services)

Pour experts
* Lisez la documentation
* Pas de mises-à-jour automatiques
* La désinstallation n’est pas toujours simple
* Pour les conflits, débrouillez-vous!

A
19
Q

Démarrage du système
Au démarrage, plusieurs services sont lancés par init (le premier
programme)
Plusieurs gestionnaires de services existent:

A

init Système V (1983)
* Les services sont gérés par les scripts dans /etc/init.d
* Doivent supporter minimalement les commandes start et stop
* Exemple: /etc/init.d/apache2 pour Apache

Systemd (2010)
* Sur la majorité des distributions Linux modernes
* Centralise la gestion de nombreux comportements
* Les services sont gérés via des fichiers de configuration
* Exemple: /lib/systemd/system/apache2.service
* Plus ou moins rétro-compatible avec init système V

20
Q

Gestion des services
* service exécute une commande d’un service système V (extra)
* systemctl gère les services Systemd (extra)

A

Liste les services
$ sudo service –status -all
$ systemctl list -units
# État d’un service
$ sudo service apache2 status
$ systemctl status apache2.service

Autres actions possibles sur les services
* status — informations sur l’état du service
* start — démarrer le service
* stop — arrêter le service
* reload — mettre à jour l’état du service et recharger la
configuration
* restart — redémarrer le service

21
Q

Configuration des programmes et services
Configuration globale et pour les services
/etc/ contient les fichiers de configuration des services

A
  • Fichiers textes simples facilement éditables
    → permet de configurer/réparer un système minimal
  • Formats spécifiques aux applications
    → Lisez la documentation
    Exemple: /etc/bash.bashrc configuration générale du shell interactif

Pour les utilisateurs
Fichiers de configuration dans le répertoire maison ~
* Directement dans ~ en tant que fichier caché (classique)
* Dans ~/.config (moderne)
Exemple: ~/.bashrc configuration locale du shell interactif

22
Q

Configuration du shell
Les fichiers de configurations du shell sont en fait des scripts shell.

A
  • Chaque ligne est une commande shell
  • Les commandes sont exécutées dans l’ordre
  • Les lignes vides sont ignorées
  • Les commentaires sont ignorés (commencent par #)