% INF1070 — Utilisation et administration des systèmes informatiques % UQAM — Département d'informatique % Plan de cours — Été 2020 * Horaires, locaux et enseignants: * Site web du cours: Responsable(s) du cours ======================= Coordination ------------ Privat, Jean PK-4830 poste 3314 Enseignement ------------- Tsheke Shele, Johnny PK-4115 poste 3699 Les étudiants doivent consulter régulièrement leur courriel UQAM, moyen de communication du professeur avec le groupe-cours. Un [canal de discussion](https://mattermost.info.uqam.ca/inf1070-20202) en ligne est aussi disponible pour interagir avec les enseignant, démonstrateurs et les autres étudiants. Description du cours ==================== Ce cours vise à former les étudiants à l'utilisation éclairée des systèmes informatiques et à introduire les concepts de l'administration de ces systèmes. Sommaire du contenu ------------------- Commandes et applications, gestion des processus, entrées-sorties et leurs redirections, tubes et conduites, fichiers de commandes. Système de fichiers hiérarchiques, types de fichiers, utilisateurs et droits, recherche et expressions régulières, fiabilité et sécurité des systèmes de fichiers. Terminologie, concepts de base et principaux protocoles des réseaux téléinformatiques. Sécurité des réseaux et vie privée. Installation, configuration, sécurisation et mise-à-jour d'un système informatique. Installation et configuration de services et de serveurs. Supervision et qualité de service. Modalité d'enseignement ----------------------- Ce cours comporte une séance obligatoire de laboratoire (2 heures). Objectif du cours ================= - Comprendre les bases d'un système informatique, en particulier un système Linux/Unix - Développer des bonnes pratiques d'utilisation d'un système informatique - Développer des bonnes pratiques d'administration d'un système informatique Contenu du cours ================ - **Chapitre 1: Introduction.** Présentation du cours, systèmes informatiques, Unix/Linux, ligne de commande. (Semaine 1) - **Chapitre 2: Introduction au shell.** Manuel en ligne, commandes et arguments, redirections et tubes, développement en caractères spéciaux. (Semaines 2 et 3) - **Chapitre 3: Fichiers.** Répertoires et chemins, manipulation des fichiers, types de fichiers, métadonnées des fichiers, droits et utilisateurs, dates, liens, recherche et filtres, compression, archivage, sauvegarde, fichiers spéciaux, partitions, systèmes de fichiers. (Semaines 3 à 6) - **Chapitre 4: Expressions régulières.** Langage et construction, expressions basiques et étendues, captures, recherche et filtres avancés. (Semaines 7 et 9) - **Chapitre 5: Administration des systèmes.** Services et démons, gestionnaire de paquets, configuration, client et serveur (exemple: le web), sécurité, ssh. (Semaine 10) - **Chapitre 6: Processus.** Caractéristiques et gestion des processus, taches, signaux, priorité. (Semaine 11) - **Chapitre 7: Scripts shell.** Programmes et exécutables, groupes et séquences de commandes, redirections avancées, développements et substitutions, paramètres, variables et variables d'environnement, code de retour et structures de contrôle. (Semaines 12 et 13) - **Chapitre 8: Services et réseau.** Internet, modèle en couche, couches réseau, transport et applications, protocoles, sécurité, réseaux locaux, tunnels. (Semaine 14) Modalités d'évaluation ====================== Outil d'évaluation Pondération Échéance -------------------------- ------------- --------------------------- Machine virtuelle Ubuntu 2.5% Semaines 2 à 5 Quiz 1 5% Semaine 5 Travail pratique 1 15% Semaines 4 à 7 Examen intra 15% Semaine 8 Environnement docker 2.5% Semaines 9 à 12 Quiz 2 5% Semaine 12 Travail pratique 2 25% Semaines 11 à 14 Évaluation Orale 15% À partir de la semaine 14 Examen final 15% Semaine 15 *Note:* Détails ------- - Les Quiz durent 20 minutes et portent sur toute la matière vue à date. - L'examen Intra sera sous forme de questions à choix multiples tirés au hasard par moodle, d'une banque de quetions et dure 3h. La série et l'ordre des questions/réponses pourraient donc varier d'une personne à l'autre. L'examen portera sur toute la matière vue à date. - L'examen final sera sous forme d'un dévoir avec des questions de type mise en situation. - L'évaluation orale consistera à répondre oralement à une question (type mise en situation) tirée au hasard par moodle dans une banque des questions ainsi qu'aux sous questions évantuelles posées oralement. L'entretien se faira sur zoom et sera enregistré, mais ne sera pas diffusé. L'enregistrement sera detruit 6 mois plus tard s'il n'y a pas de contestation de la note. - Les évaluations sur la Machine virtuelle et le Docker consistent à montrer qu'on a réussi à installer un environement fonctionnel chez soi. - Le TP1 portera majoritairement sur l'utilisation des commandes shells et la manipulation de fichiers. - Le TP 2 consistera à la mise en situation d'installation, administration et utilisation d'une application concrète. Règles concernant le seuil de passage ------------------------------------- L'étudiant doit obtenir - Une moyenne générale pondérée supérieure ou égale à 50% Si ce seuil n'est pas atteint, la mention échec sera automatiquement attribuée au cours. Séances de laboratoires ======================= Les laboratoires se font principalement dans un environnement Linux et servent à: - Expérimenter les concepts et outils vus en cours - Approfondir l'utilisation de certains outils - Présenter de la matière technique nouvelle qui ne sera pas vue en classe - Offrir un support pour la réalisation des travaux pratiques Les laboratoires ne sont pas notés mais la participation active aux laboratoires est recommandée. En particulier, de la matière uniquement vue en laboratoire pourra faire partie des évaluations. Matériel et logiciels utilisés ============================== Il est fortement recommandé aux étudiants d'avoir accès à un ordinateur sur lequel ils pourront installer Linux (en système principal, en dual-boot, dans une machine virtuelle, avec docker, etc.). Un laboratoire sera dédié à l'installation d'une distribution Linux. Le TP sera sur un container docker. Dans le cadre du cours, nous utilisons des distribution basées sur Debian (dont Ubuntu) mais la plupart des autres distributions Linux à jour seront acceptables. MacOS X n'est pas supporté. Calendrier détaillé du cours ============================ Le calendrier donné à titre indicatif seulement. Semaine 1 --------- - Chapitre 1 : Introduction à l'utilisation et à l'administration des systèmes informatiques - Laboratoire: Installation Machine virtuelle Ubuntu Semaine 2 --------- - Chapitre 2: Introduction au shell (partie 1) - Laboratoire: Introduction à Linux et ses outils Semaine 3 --------- - Chapitre 2: Introduction au shell (partie 2) - Chapitre 3: Fichiers (partie 1) - répertoires et manipulation - Laboratoire : Installer une machine virtuelle Semaine 4 --------- - Chapitre 3: Fichiers (partie 2) - types, taille et droits - Distribution du sujet du TP1 - Laboratoire: Commandes shell Semaine 5 --------- - Chapitre 3: Fichiers (partie 3) - dates et liens - Quiz noté en ligne (moodle) - Laboratoire: Manipulation des fichiers Semaine 6 --------- - Chapitre 3: Fichiers (partie 4) - chercher, compression et archivage, fichiers spéciaux et partitions - Correction du quiz - Laboratoire: Chercher, filtrer, couper Semaine 7 --------- - Chapitre 4: Expressions régulières (partie 1) - expressions régulières basiques (BRE) - Laboratoire: Expressions régulières - Remise du TP1 Semaine 8 --------- - Examen intra commun (pas de cours) - Laboratoire de révision Semaine 9 --------- - Chapitre 4: Expressions régulières (partie 2) - expressions régulières étendues (ERE) - Correction de l'examen - Laboratoire: Plus d'expressions régulières - Attention à la date limite d'abandon sans mention d'échec Semaines 10 ----------- - Chapitre 5: Administration des systèmes - Laboratoire: Administration des systèmes Semaines 11 ----------- - Chapitre 6: Gestion des processus - Distribution du TP2 Semaine 12 ---------- - Chapitre 7: Shell avancé et programmation de scripts shell (partie 1) - Quiz noté en ligne (moodle) Semaine 13 ---------- - Chapitre 7: Scripts shell (partie 2) - développement, substitutions, paramètres et variables - Correction du quiz - Laboratoire: shell avancé et scripts Semaine 14 ---------- - Chapitre 8: Introduction aux réseaux - Évaluation orale Semaine 15 ---------- - Examen final - Évaluation orale Médiagraphie ============ Obligatoire ----------- - [Site web du cours (moodle)](https://www.moodle2.uqam.ca/coursv3/course/view.php?id=36213), incluant entre autres les diapositives utilisées en classe. Ressources complémentaires -------------------------- - [The Linux Command Line](http://linuxcommand.org/tlcl.php), par William Shotts, 4e édition, 544 pages. Disponible en ligne, seulement en anglais. - [The Debian Administrator's Handbook](https://debian-handbook.info/), par Raphaël Hertzog and Roland Mas, 512 pages. Disponible en ligne. Existe en français [Le cahier de l'administrateur Debian](https://debian-handbook.info/get/#french). - [UNIX and Linux System Administration Handbook](https://www.admin.com/), par Evi Nemeth, Garth Snyder, Trent R. Hein, Ben Whaley et Dan Mackin, 1232 pages. Disponible à la bibliothèque, en anglais. - [Les cahiers du débutant, Debian sans se prendre la tête](https://dflinux.frama.io/lescahiersdudebutant/), par l'Équipe 3HG, 328 pages. Disponible en ligne en français.