AP3.4 : Serveur linux

publicité
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
Téléchargement