Ignorer la navigation

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 toto@192.168.0.13)

  • 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"

    • 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
  • Connaitre le contenu du répertoire dans lequel on se trouve: ls
  • Connaître les options d'une commande: man. Par exemple pour connaître les options de la commande ls: on tape "man ls"



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/html

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"


d) Allez dans le répertoire "html" (situé là: var/www/html)




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 html. 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 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 "html" 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 nouveau 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

exécution seulement

--x

1

écriture seulement

-w-

2

écriture et exécution

-wx

3

lecture seulement

r--

4

lecture et exécution

r-x

5

lecture et écriture

rw-

6

tous les droits (lecture, écriture et exécution)

rwx

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


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 ?