STI2D Option SIN AP3.4 : Serveur linux Terminale Informatique Durée prévue : 3h. Problématique : utilisation d'un serveur sous linux (debian) Compétences visées Être capable de mettre un site internet sur un serveur linux Plan de l’étude I. Présentation du Raspberry Pi et de son environnement II. Quelques commandes linux III. Votre site internet sur le serveur IV. Pour aller plus loin avec les commandes linux Logiciels PuTTY (sous windows) Mode de distribution Dossier technique associé Dossier ressource associé AP3.4_eleves.odt Savoirs associés Remarque Matériels Ordinateur Les serveurs Raspberry Pi Format numérique 1/12 I. Présentation du Raspberry Pi et de son environnement Le Raspberry Pi est un nano-ordinateur monocarte à processeur ARM conçu par le créateur de jeux vidéo David Braben, dans le cadre de sa fondation Raspberry Pi. Cet ordinateur permet l'exécution de plusieurs variantes du système d'exploitation libre GNU/Linux et des logiciels compatibles. Il est fourni nu (carte mère seule, sans boîtier, alimentation, clavier, souris ni écran) dans l'objectif de diminuer les coûts et de permettre l'utilisation de matériel de récupération. il est équipé d'un processeur Broadcom BCM2836, quatre cœurs ARMv7 à 900 MHz, accompagné de 1 Go de RAM. 40pins: 28x GPIO, I2C, SPI, UART 1 2x USB 2.0 Raspberry Pi Model B+ V1.2 (C)Raspberry Pi 2014 CPU/GPU Broadcom BCM2835 4x USB + Ethernet controller LAN9514 2x USB 2.0 512MB SDRAM 3.3V & 1.8V Regulator current limiter HDMI Ethernet RJ45 polarity protection Micro USB Power in power good Ethernet HDMI out 4 poles jack Il possède 4 port Usb, un port Ethernet, un emplacement pour une carte micro SD (c'est sur celle-ci que l'on va mettre entre autre le système d'exploitation), un port HDMI, ….. Cette carte fonctionne en général avec un système d’exploitation de type GNU/Linux. La distribution la plus installée sur cet équipement est Raspbian. Raspbian est un système d'exploitation libre basé sur la distribution Debian optimisée pour la carte Raspberry. Pour rappel un système d'exploitation est l'ensemble des programmes de base et des utilitaires qui permettent le fonctionnement de la carte (c'est l'équivalent "libre" de Windows). GNU/Linux. Le Projet GNU a été démarré en septembre 1983 par Richard M. Stallman afin de créer un système d'exploitation complet utilisant du logiciel libre. De nos jours, il existe plusieurs systèmes d'exploitation libres qui respectent les libertés des utilisateurs en donnant à tout le monde le droit d'utiliser, étudier, partager, et améliorer le logiciel. Stallman fonda la "Free Software Foundation" en octobre 1985 pour gérer les aspects administratifs, juridiques et organisationnels du Projet GNU et pour développer l'utilisation et la connaissance du logiciel libre. Les principales licences issues du Projet GNU sont la Licence Publique Générale GNU (GPL) et la Licence Publique Générale GNU Restreinte (LGPL nommée à l'origine Licence Publique Générale de Librairie). Au fil des ans, elles sont devenues les licences de Logiciel Libre les plus utilisées. Le Projet GNU consiste en de nombreux sous-projets maintenus par des volontaires, des sociétés ou une AP3.4_eleves.odt 2/12 combinaison des deux. Ces sous-projets sont appelés "Projets GNU" ou "paquets GNU" ("GNU packages" en anglais). Le nom du Projet GNU provient d'un acronyme récursif "GNU is Not UNIX" ("GNU ce n'est pas UNIX"). Qu'est-ce qu'UNIX ? UNIX était un très bon système d'exploitation répandu dans les années 80, système qui a inspiré le modèle GNU/Linux. Ce nom permet de reconnaître que GNU s'est inspiré de la conception technique UNIX, mais il met également en avant que ces deux systèmes n'ont pas de liens de parenté. A l'inverse d'UNIX, GNU est un Logiciel Libre. Pour information les systèmes d'exploitation utilisés par Apple sur ses ordinateur sont eux aussi inspirés d'Unix. Étant un système de type UNIX, GNU est de conception modulaire. Ce qui signifie que des modules tiers peuvent être adjoint à GNU. Aujourd'hui, il est d'usage courant d'utiliser avec les systèmes GNU le noyau appelé Linux, qui est un module tiers. De nombreuses personnes utilisent le terme "Linux" pour cette variante de GNU. Les distributions GNU/Linux. Il existe un grand nombre de distributions GNU/Linux différentes, voici les principales : • Slackware : une des plus anciennes distributions de Linux. Elle existe encore aujourd'hui ! • Mandriva : éditée par une entreprise française, elle se veut simple d'utilisation ; • Red Hat : éditée par une entreprise américaine, cette distribution est célèbre et très répandue, notamment sur les serveurs ; • SuSE : éditée par l'entreprise Novell ; • Debian : la seule distribution qui soit gérée par des développeurs indépendants plutôt que par une entreprise. C'est une des distributions les plus populaires. Les deux utilisations de GNU/Linux. Le mode console. Le mode console fait peur par l’austérité de sa présentation et de son utilisation car il s'agit d'un simple écran affichant du texte. Mais c'est un outil puissant indispensable pour les utilisateurs qui veulent maîtriser GNU/Linux. Il est privilégié quand linux est installé sur un serveur. AP3.4_eleves.odt 3/12 Le mode graphique. Le mode graphique ressemble un peu au visuel du bureau de Windows. La souris fonctionne, il y a des icônes et on peut lancer des applications par des « clics ». On l'utilise quand linux est installé sur un ordinateur. Les principaux gestionnaires de bureau sont les suivants : • Gnome • KDE • XFCE Exemple de bureau de la distribution Ubuntu avec l'environnement de bureau GNOME et l'interface Unity. Maintenant on va chercher l'adresse de notre serveur. a) Allez dans le menu « démarrer » de Windows, tapez « cmd » et une fenêtre DOS s'ouvre. Vous pouvez alors taper 'ipconfig'. Déduisez-en sur quel VLAN est relié votre ordinateur (xxx.xxx.vlan.xxx). Remarque : pour des raisons de sécurité les VLAN (Virtual LAN = virtual Local Area Network) ne communiquent pas entre eux. b) Demandez au professeur l'adresse IP du serveur Raspberry Pi branché sur votre VLAN c) Faites un "ping" avec cette adresse IP. Voyez-vous le serveur ? (si ce n'est pas le cas demandez au professeur de vous aider à chercher le problème) d) Faites une autre vérification en tapant l'adresse IP du serveur dans la barre d'URL de votre navigateur internet. Que se passe-t-il ? AP3.4_eleves.odt 4/12 II. Quelques commandes linux Notre Raspberry Pi est connecté au réseau. Nous allons donc nous y connecter à distance à partir de n'importe quel ordinateur (à condition qu'il soit sur le même VLan) grâce à la liaison SSH programmée dans le Raspberry Pi. SSH : Secure Shell (SSH) est à la fois un programme informatique et un protocole de communication sécurisé. Le protocole de connexion impose un échange de clés de chiffrement en début de connexion. Par la suite, tout est codé et il est alors très difficile de pirater la liaison et même de voir les données échangées. a) Demandez au professeur le login et le mot de passe du serveur Raspberry Pi b) Connectez-vous au Raspberry Pi : • Sous linux il suffit d'ouvrir un Terminal et de taper : ssh login@adresse IP du raspberry (par exemple : ssh [email protected]) • Sous Windows cela nécessite d'installer une petite application "puTTY" (celle-ci n'est pas forcément disponible dans les programmes mais peut être sur le bureau) : ◦ rentrez l'adresse IP du Raspberry Pi ◦ choisissez le port 22 et la liaison SSH ◦ cliquez sur "Open" AP3.4_eleves.odt 5/12 ◦ Si la connexion SSH fonctionne, on vous demande le "login". ◦ Ensuite tapez le mot de passe. ◦ Maintenant vous êtes logué (vous êtes donc dans le Raspberry Pi) et vous devez avoir une fenêtre ressemblant à cela : (login@rapsberrypi) Découvrons quelques commandes linux c) Tapez chaque commande proposée ci-dessous et relevez les résultats obtenus : • • • • Pour connaître le système installé? uname -a Connaître la distribution installée : cat /etc/issue Quels sont les utilisateurs en cours du système? Who Se localiser dans la hiérarchie : pwd Maintenant nous allons nous déplacer pour aller dans un répertoire où installer notre site internet Le serveur installé (apache avec PHP et MySql) demande de placer les fichiers de notre site internet à l'endroit suivant : var/www Nous allons d'abord y aller (la commande "pwd" vous a montré où vous étiez dans l'arborescence). Pour se déplacer on va utiliser la commande cd. Quelques exemples : • cd rep : on va dans le répertoire rep (si celui-ci existe à l'endroit où l'on est) • cd .. : on recule (on va dans le répertoire précédent) • cd ../.. : on recule de 2 répertoires Mettons que la structure soit celle-ci : /toto /rep1/rep2 On se trouve actuellement dans le répertoire toto Comment aller dans le répertoire rep2 ? 1. on peut se déplacer étape par étape : • cd .. puis "entrée" (on a reculé d'un cran, on est donc à la racine représentée par "/" seul) • puis cd rep1 puis "entrée" (on va dans le répertoire "rep1") • puis cd rep2 puis "entrée" (on va dans le répertoire "rep2") 2. on peut faire tout ça en une commande : cd ../rep1/rep2 puis "entrée" AP3.4_eleves.odt 6/12 d) Allez maintenant dans le répertoire "www" (situé là: var/www) Maintenant nous allons créer un répertoire où placer notre site internet. La commande pour créer un répertoire est : mkdir nom du répertoire e) Créez votre répertoire (il portera votre nom) dans le répertoire www. Que répond le système ? Vraisemblablement votre login n'a pas les droits nécessaires à la commande mkdir. Les utilisateurs et les droits d’accès. Linux est un système multi-utilisateurs et sécurisé. Cela signifie que plusieurs personnes peuvent travailler simultanément, en s'y connectant à distance notamment. Puisque plusieurs utilisateurs peuvent être connectés à Linux en même temps, celui-ci doit avoir une excellente organisation dès le départ. Ainsi chaque personne a son propre compte utilisateur, et il existe un ensemble de règles qui disent qui a le droit de faire quoi. L’organisation des utilisateurs sous GNU/Linux. On peut créer autant d'utilisateurs que l'on veut, eux-mêmes répartis dans des groupes. Il y a un utilisateur spécial, « root », aussi appelé super-utilisateur. Celui-ci a tous les droits sur la machine. Au départ, sur une carte Raspberry Pi, deux utilisateurs sont créés : root et pi. On ne se connecte en « root » que très rarement, lorsque c'est nécessaire. Certaines commandes de GNU/Linux ne sont accessibles qu'à « root ». Le reste du temps, on utilise un compte limité. Cette simple protection permet de largement limiter les dégâts en cas de fausse manipulation, de virus, etc. En effet, un virus ne peut rien faire de plus que vous quand vous êtes connectés avec des droits limités. En revanche, si vous êtes en « root » il pourra tout faire, même détruire votre système. Sous Windows, vous êtes toujours connectés en administrateur par défaut (équivalent de root), ce qui explique pourquoi les virus y sont si dangereux. Les droits d’accès. Chaque fichier et chaque dossier possède une liste de droit. C'est une liste qui indique qui a le droit de voir le fichier, de le modifier et de l'exécuter. Les lettres d, r, w et x montrent ce qu'on appelle les droits d'accès du fichier ou dossier. On peut voir cinq lettres différentes : • d (Directory) : indique si l'élément est un dossier ; • l (Link) : indique si l'élément est un lien (raccourci) ; • r (Read) : indique si on peut lire l'élément ; • w (Write) : indique si on peut modifier l'élément ; • x (eXecute) : si c'est un fichier, x indique qu'on peut l'exécuter. Ce n'est utile que pour les fichiers exécutables (programmes et scripts). Si la lettre apparaît, c'est que le droit existe. S'il y a un tiret (« - ») c'est qu'il y a aucun droit. Les droits sont découpés en fonction des utilisateurs, les lettres r,w,et x sont répétées trois fois : • le premier groupe de trois lettres indique les droits que possède le propriétaire du fichier ou du répertoire sur ce dernier. • le second groupe de trois lettres indique les droits que possèdent les autres membres du groupe sur ce AP3.4_eleves.odt 7/12 fichier ou ce répertoire. le dernier groupe de trois lettres indique les droits que possèdent tous les autres utilisateurs de la machine sur ce fichier ou ce répertoire. Un fichier possède donc un propriétaire (généralement celui qui l'a créé) et appartient à un groupe : • f) Revenir dans le répertoire "var" et tapez la commande "ls -l" ("ls" permet de lister le contenu d'un répertoire). Relevez le droits du répertoire "www" et expliquez-les. g) Allez dans le répertoire www et tapez la commande "ls -l". Y-a-t-il un répertoire dans lequel vous avez les droits ? h) Allez dans ce répertoire et créez-y un nouveau répertoire avec votre nom i) Relevez les droits de ce répertoire et analysez-les. Tout vous semble normal ? Nous allons maintenant changer les droits afin que tout le monde puisse lire et écrire dans votre répertoire Correspondances de représentation des droits Droit Valeur alphanumérique Valeur octale --aucun droit 0 --x exécution seulement 1 -wécriture seulement 2 -wx écriture et exécution 3 r-lecture seulement 4 r-x lecture et exécution 5 rwlecture et écriture 6 rwx tous les droits (lecture, écriture et exécution) 7 Nous allons utiliser la commande "chmod". La manière la plus simple est d'utiliser la valeur octale (tableau précédent) : chmod xyz nom du fichier ou répertoire (où x, y et z représentent la valeur octale des droits des 3 types d'utilisateurs) Exemple : chmod 744 toto : le répertoire "toto" devient accessible pour tout pour le propriétaire et en lecture pour le groupe auquel appartient le répertoire et tous les autres AP3.4_eleves.odt 8/12 j) Changez les droit de votre répertoire afin de donner tous les droits à tout le monde. Relevez votre résultat. Nous allons maintenant faire un petit site internet d'une page sur ce serveur. Allez dans votre répertoire à votre nom créé sur le serveur. Nous allons faire le site suivant : <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>série 3 : un serveur</title> </head> <body> <br/><p> un petit essai</p> </body> </html> Nous allons utiliser un éditeur très simple : nano Tapez : nano essai.html (nano s'ouvre et crée le fichier essai.html si celui-ci n'existe pas) puis rentrez dans ce fichier "essai.html" le site prévu. Pour sortir et enregistrer il faut taper "CTRL + X" et répondre "o" (oui) pour enregistrer vos modifications Maintenant il ne reste plus qu'à vérifier si cela fonctionne. k) Faites l'essai : dans l'URL de votre navigateur tapez : adresse IP du serveur /eleves/votre repertoire/essai.html . Cela fonctionne-t-il ? III. Votre site internet sur le serveur Vous avez comme objectif de mettre le dernier site réalisé dans le TP précédent (sur les applets Javascript Rgraph) sur le serveur (dans votre répertoire). Pour mettre un site sur le serveur on va se servir d'outils prévus à cet effet. Il existe beaucoup de programmes pour transférer des fichiers sur un serveur (par exemple Filezilla). Nous allons utiliser le module "fireFTP" disponible sur notre navigateur Mozilla Firefox. AP3.4_eleves.odt 9/12 Allez dans le menu "outils" de Firefox puis "développement web" puis "FireFTP" Remarque : si "FireFTP" n'est pas installé, il faut aller dans "outils" puis "modules complémentaires" et chercher le module "FireFTP, client FTP pour Mozilla Firefox" et l'installer. Une fois le module lancé : • choisir "connexion rapide" (cela ouvre une fenêtre) • dans l'onglet "général", mettre l'adresse IP du serveur dans "Hôte", votre identifiant et le mot de passe • dans l'onglet "connexion" choisir "SFTP", le port 22 et "connecter" Ensuite c'est très simple. Sur le coté gauche vous êtes sur votre ordinateur et sur le côté droit dans le serveur. Vous allez vous positionner aux bons endroits (à gauche comme à droite c'est à dire sur l'ordinateur et du côté serveur). Vous sélectionner les fichier à transférer (côté gauche) et cliquez sur la flèche → . AP3.4_eleves.odt 10/12 Une fois le transfert terminé, il reste à vérifier en allant, à l'aide de votre navigateur internet, sur le serveur. Quand tout fonctionne faites valider par votre professeur. IV. Pour aller plus loin avec les commandes linux Effacer un fichier ou un répertoire Pour effacer un fichier ou un répertoire c'est la commande "rm nom du fichier" Pour effacer plusieurs fichiers : • rm *.jpg (efface tous les fichiers images ayant l'extention .jpg) • rm *.* (efface tout le contenu du répertoire dans lequel on est) La commande rm est irréversible ! Effacer tous vos fichers puis votre répertoire du serveur. La commande "man" Les commandes ont souvent des options ou des paramètres AP3.4_eleves.odt 11/12 Par exemple si vous faites "ls" ou "ls -l" cela ne donne pas le même résultat (et pourtant c'est la même commande "ls") La syntaxe des commandes est la suivante : nom_de_la_commande [-option(s) | --options longues] arguments Il y a un moyen de connaître toutes les options d'une commande en tapant "man nom de la commande". Si vous tapez "man ls", cela va ouvrir en fait une documentation sur la commande "ls" avec toutes ses options (on en sort de cette documentation en tapant "q") Essayez cette commande "man" avec "ls" et essayez quelques options de "ls" Pour compléter ce TP : • sur le site "openclass Room" il y a une formation sur l'utilisation des commandes linux : https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux AP3.4_eleves.odt 12/12