Maintenant que vous avez libéré votre ordinateur (voir /installer), vous allez pouvoir acquérir (par la pratique) l'esprit Linux, c-à-d vous libérer du comportement passif dans lequel vous a maintenu votre ancien système propriétaire (Microsoft ou Mac). Cette passivité maintient la population dans l'analphabétisme numérique, et la pousse ainsi dans les bras des GAFAM. Ces entreprises commerciales privées se moquent de savoir que vous n'utilisez qu'une infime partie des fonctions de leur système, et souvent de façon très inefficace (je tombe de ma chaise à chaque fois que j'observe travailler sur leur ordinateur des utilisateurs de Microsoft comme de Macintosh). La raison de cette situation est que l'objectif des GAFAM est de collecter vos données personnelles (privées, sociales et professionnelles). Ce ne sont pas des entreprises publiques dans un système de démocratie directe...
Avec Linux vous allez démultiplier votre productivité informatique ... par la pratique. Car Linux Debian, ce n'est pas seulement un système libre et ouvert. C'est aussi une communauté d'entraide et de collaboration.
Dans l'esprit Linux Debian, vous aider, ce n'est pas résoudre les supposés "problèmes" à votre place, mais vous indiquer la voie pour le faire vous-même. Vous découvrirez d'ailleurs que, dans la plupart des cas, la cause de supposés "dysfonctionnements" du système n'est pas le matériel ou le logiciel, mais l'analphabétisme numérique.
Ainsi avant de demander de l'aide sur un forum (par exemple debian-fr.org), ayez le réflexe de systématiquement vous poser d'abord les questions suivantes : "quelle est nature du supposé "problème" " ⇒ "quelles sont ses causes possibles" ⇒ "que dois-je faire pour résoudre le problème". Pour chacune de ces questions, écrivez les réponses que vous imaginez, tout cela dans un même fichier que vous mettez à jour au fur et à mesure de vos recherches. Dans la section suivante vous apprendrez comment répondre à ces questions ⇒ ne demandez de l'aide à la communauté Linux Debian qu'après avoir essayé de résoudre vous-même le "problème", et en communiquant le résultat de vos recherches. Sinon, la seule réponse que vous risquez de recevoir sera généralement RTFM.
Mais, in fine, la maîtrise de votre ordinateur est surtout une philosophie d'émancipation. Le logiciel libre est donc aussi un mode de vie, ce qui se traduit par :
Apprenez par la pratique, et non en lisant les manuels de debian.org de A à Z. Utilisez ceux-ci comme une encyclopédie où l'on va chercher la réponse à une question spécifique.
Si le sommaire ne suffit pas pour trouver la section ad hoc, faites une recherche par mots clés via un moteur de recherche : motsClés site:debian.org. Vous trouverez ainsi des éléments des réponse provenant :
D'autre part sachez qu'une réponse a très probablement déjà été fournie à votre question. Faites donc une recherche sur ces excellents sites (anglophones...) :
Pour traduire vos mots clés en anglais : translate.google.com
Avec Linux Debian et d’autres systèmes d’exploitation semblables à UNIX, les fichiers sont organisés en répertoires. Tous les fichiers et les répertoires sont disposés sous forme d’une arborescence ancrée sur / . On parle d'arborescence parce que si vous dessinez le système de fichiers, il ressemble à un arbre qui se trouverait disposé la tête en bas (c'est aussi pourquoi on utilise le terme "répertoire" plutôt que "dossier").
Un autre différence par rapport à d'autres systèmes d'exploitation est l'absence du concept de "lecteurs" : il y a un système de fichiers qui comprend tout. C’est un gros avantage comparé au système de lecteurs tels que A: etc sur MS Windows.
Arborescence des fichiers :
À priori les noms des répertoires peuvent sembler rébarbatifs, mais on s'y habitue très vite, et surtout ils sont très bien adaptés à l'utilisation des lignes de commandes.
Pour utiliser un ordinateur, c-à-d interagir avec le système d'exploitation (SE), une couche logicielle appelée "interface système" ou plus souvent shell – et logiquement située "entre" le SE et l'utilisateur – permet à celui-ci d'utiliser une série de commandes.
Il y a deux façons d'envoyer les commandes au SE (et de recevoir sa réponse) :
NB : dans toutes les pages de linux-debian.net, dès qu'il est fait référence à une interface graphique, sachez que c'est dans le cadre du bureau Mate, que nous recommandons en raison de sa simplicité.
Le shell graphique est supposé plus convivial, mais présente cependant deux inconvénients : (i) il n'utilise qu'une partie des commandes disponibles, et pour chacune d'elle seulement une partie de ses options ; (ii) il peut consommer beaucoup de mémoire vive, et ainsi ralentir sensiblement la vitesse de fonctionnement de l'ordinateur.
Quelle type de shell préférer ? Préférer l'interface graphique n'est pas un crime, mais si vous n'utilisez que le shell graphique, vous progresserez nettement moins dans la maîtrise de votre ordinateur, et dans la compréhension intuitive des technologies de l'information. Ainsi à chaque fois que j'utilise une commande, je cherche à comprend la signification de chacune de ses chaînes de caratères, au moyen des manuels présentés plus loin dans la section #bash.
Dans l'image ci-dessous, illustrant un terminal, l'utilisateur dev, travaillant sur l'ordinateur vmdev, a lancé la commande ls -l (première ligne). Cette commande affiche le contenu du répertoire courant (ici le répertoire racine de dev). Une fois le résultat affiché, l'invite de commande dev@mdev:~$ est à nouveau affichée (dernière ligne).
Interface de ligne de commande (ou "terminal")
Si le répertoire courant était "Documents", l'invite serait dev@mdev:~/Documents$
Copier-coller. Dans le terminal, les habituelles combinaisons de touche ctrl+c (copier) et ctrl+v (coller) de l'interface graphique doivent être remplacées respectivement par ctrl+shift+c et ctrl+shift+v. On peut aussi utiliser le clic-droit de la souris.
Quelques principes de base de la ligne de commande :
Les fonctions de séquence et redirection évoquées ci-dessus montrent bien que l'interface graphique ne permet d'opérer qu'une partie des fonctions utilisables via l'interface en lignes de commandes.
Laurent Bloch stimule une compréhension intuitive du shell en posant cette question : « Avez-vous déjà essayé de vous rappeler quelle séquence de coups de souris avait produit tel résultat subtil et ardemment désiré dans Word ? ou de dicter au téléphone une telle séquence à un collègue (sauf dans le cas où il est devant son écran et peut effectuer les actions au fur et à mesure de la dictée) ? Tandis qu’une série de commandes du shell, cela s’envoie par courrier électronique de façon sûre » [source p.62].
Autrement dit, on peut donc écrire en shell des programmes, appelés shell scripts, constitués de séquences de commandes agrémentées de constructions telles qu’alternative ou répétition, ce qui permet d’automatiser des tâches répétitives. Le shell est donc un type de langage de programmation. Il existe divers shell, le plus célèbre étant probablement bash ...
Bash est un shell libre, installé par défaut sur Linux Debian.
Avec l'anglais, actuellement la première langue internationale, le langage de programmation bash devrait faire partie du programme d'enseignement obligatoire de base. Ce n'est malheureusement pas le cas, ce qui a conduit à l'analphabétisme numérique de la quasi totalité de la population, y compris parmi les jeunes universitaires ! Cela est une des raisons de la création du présent site linux-debian.net.
Voici les manuels :
Avec les regex, l'informatique rejoint donc la pensée. Par conséquent, ne sommes-nous pas ici au coeur de l'intelligence artificielle et/ou collective ?
Sur votre terminal, reproduisez les opérations de l'encadré ci-dessous. Pour chaque ligne de commande, cherchez à comprendre la signification de chaque chaîne de caractères : essayez d'abord la compréhension intuitive, puis vérifiez dans le manuel ad hoc.
N.B. Remarquez que la plupart des opérations que nous appliquons ici au fichier bd, peuvent l'être également au résultat de commandes. Exemples avec la commande ls : ls -lh | sort -k 9 (trier sur base de la neuvième colonne) ou encore ls -lh | sort -nk 5 (trier sur base de la cinquième colonne).
# Soit la base de données numériques :DATE CLIMAT ÉPIDÉM UKRAIN 27-08-22 6 0 14 28-08-22 6 0 14 29-08-22 10 0 18
Nous allons introduire ici le plus populaire des langages de programmation, en l'occurrence Python [source], qui est apprécié notamment pour sa simplicité ... et sa licence libre.
Manuels :
Exercice : Nous allons compléter, par du code Python, le dernier script bash que nous avions étudié dans la section précédente (#bash-exercices).
Rappel : notre script bash, qui est lancé automatiquement chaque jour à midi, enregistre dans un fichier le nombre de fois que les chaînes de caractères "climat", "épidémi" et "ukrain" sont mentionnées dans la page d'accueil du journal Le Monde. Voici le résultat au 29-08-22 après-midi :
DATE CLIMAT ÉPIDÉM UKRAIN 27-08-22 6 0 14 28-08-22 6 0 14 29-08-22 10 0 18
Dans notre crontab (cf. section précédente), nous allons ajouter un script écrit en Python, qui va construire le graphique du tableau ci-dessus.
# Contenu de ce fichier (que nous appellerons makeGraph) :
#!/bin/python3
# Lire les données du tableau :
import pandas as pd
df = pd.read_csv('dataTable', sep='\;+', parse_dates=['DATE'], dayfirst=True)
# Calculer la moyenne mobile de 30 jours :
df = df.set_index('DATE').rolling('30D').mean().reset_index()
# Créer un graphe avec DATE en abscisse et les colonnes en ordonnée :
ax = df.plot(x='DATE', y='CLIMAT', color='r', linestyle='dotted')
df.plot(x='DATE', y='ÉPIDÉM', color='g', ax=ax)
df.plot(x='DATE', y='UKRAIN', color='b', ax=ax, linestyle='dashed')
# Afficher le graphe :
ax.legend(['CLIMAT', 'ÉPIDÉM', 'UKRAIN'])
ax.set_ylabel('# mentions')
# Forcer l'affichage de nombres entiers sur l'axe Y du graphique :
from matplotlib.ticker import MaxNLocator
ax2.yaxis.set_major_locator(MaxNLocator(integer=True))
# Affichage des mois en français :
import locale
locale.setlocale(locale.LC_ALL,'fr_FR.utf8')
# : vérifier la locale dans le terminal : locale -a
import matplotlib.pyplot as plt
# Afficher les grilles :
plt.grid(True)
plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')
# Enregistrer le graphique :
plt.savefig('dataGraph.png')
# : essayez de comprendre intuitivement la signification de chaque chaîne de caractère de chaque ligne du code ci-dessus (et si nécessaire, vérifiez et approfondissez à l'aide des manuels).
# Dans le terminal, compléter la planification, en ajoutant le lien vers le script makeGraph :
crontab -e
# ⇒ ajouter la ligne :
0 12 * * * $HOME/getData && /usr/bin/python3 $HOME/makeGraph
# NB : crontab a besoin qu'on lui indique où se trouve le paquet python3 ...
Voici le graphique dataGraph.png (auquel j'ai ajouté une variable depuis la publication ci-dessus du code) :
Retour à bash, cette fois pour télécharger quotidiennement sur le présent site web la version mise à jour du graphique ci-dessus !
# Contenu de ce script, que nous appellerons uploadGraph :
#!/bin/bash
# pw='MotDePasse'
# SSHPASS=$pw sshpass -ev sftp -oBatchMode=no -b - monId@monServeurFtp:monRepertoire << !
# cd ./monDossierImages
# put '$HOME/dataGraph.png'
# bye
# !
# NB : sshpass n'est pas installé par défaut.
# Mais laisser un mot de passe en clair dans un fichier ce n'est pas recommandé --> deux solutions :
# (a) : à la place d'un mot de passe, utiliser une double clé publique/privée (NB : il faut un access ssh au serveur);
# (b) : en l'absence d'accès ssh au serveur, renoncer au 100% automatique : la commande suivante affiche un popup demandant d'introduire le mot de passe (NB : cette fenêtre apparaîtra donc sur l'écran chaque jour à l'heure précisée dans le crontab) :
#!/bin/bash
pw=$(zenity --password --title="Mise à jour dataGraph.png")
SSHPASS=$pw sshpass -ev sftp -oBatchMode=no -b - monId@monServeurFtp:monRepertoire << !
cd ./monDossierImages
put '$HOME/dataGraph.png'
bye
!
# Compléter la planification :
crontab -e
# Il faut ajouter les quatre lignes suivantes pour que crontab puisse gérer zenity (source : unix.stackexchange.com/.../do-zenity-system-tray-notifications-not-work-with-cron ... que j'ai trouvée en tapant debian zenity crontab site:stackexchange.com dans un moteur de recherche) :
DISPLAY=":0.0"
XAUTHORITY="$HOME/.Xauthority"
XDG_RUNTIME_DIR="/run/user/1000"
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
# et ajouter le lien vers maj :
0 12 * * * $HOME/getData && /usr/bin/python3 $HOME/makeGraph && $HOME/uploadGraph
# : si vous placez les trois scripts (getData, makeGraph, uploadGraph) ailleurs que dans votre racine $HOME, la ligne ci-dessus deviendra difficilement lisible dans crontab car celui-ci ne permet pas de la briser en allant à la ligne -> une solution est de placer la ligne "$HOME/getData && /usr/bin/python3 $HOME/makeGraph && $HOME/uploadGraph" dans un script bash.
Bilan. La collecte des données sur lemonde.fr (getData), puis la fabrication du graphique (makeGraph), et enfin la mise à jour du graphique sur cette page (uploadGraph), tout se fait ainsi automatiquement !
Tout problème qui survient est une opportunité d'apprentissage
Par exemple, vous constaterez qu'après une réinstallation du système d'exploitation (qui supprime toutes les variables d'environnement enregistrées par le SE), le fichier uploadGraph ne fonctionne plus. Si vous observez son déroulement dans le terminal, il se peut pourtant que rien d'anormal n'apparaisse. C'est pourquoi il est utile d'ajouter l'option "verbose" (v) à la commande sshpass, qui explique la cause du problème : la clé d'identification du serveur ftp n'est pas connue du SE. Une solution consiste alors à lancer dans le terminal la ligne :
$ sftp -oBatchMode=no -b - monId@monServeurFtp:monRepertoire
$ The authenticity of host 'monServeurFtp' can't be established.
$ * key fingerprint is *.
$ This key is not known by any other names.
$ Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
$ Warning: Permanently added 'monServeurFtp' to the list of known hosts.
⇒ à la ligne :
$ monId@monServeurFtp's password:
... faire juste Enter pour fermer la connection.
Les termes "paquet", "application", "logiciel" ou encore "programme" sont synonymes. Le choix varie selon le contexte : "application" pour l'utilisateur lambda, "paquet" pour le développeur Debian, ...
L'installation (NB : toujours en étant connecté) et la désinstallation d'un paquet sont réalisables soit via une interface graphique, soit en ligne de commande :
En interface graphique (Système > Administration > Synaptic) :
En ligne de commandes [source] :
Exercice : identifiez à quelle commande correspond chaque étape de la procédure graphique.
Si vous privilégiez la sécurité du système sur la facilité de configuration d'une application, préférez la suppression complète.
Conseils pour ne pas endommager votre système par des installations ou désinstallations inconsidérées : wiki.debian.org/DontBreakDebian
Tel paquet est-il déjà installé ? Tel paquet est-il installé par défaut ? Comment trouver un paquet sans en connaître le nom exact ? ... :
Il existe également des pages de manuel pour les fichiers de configuration ! Exemple : /etc/hosts. Lecture vivement recommandée ...
La présente section concerne tous les types de système d'exploitation (Linux, MS Windows, MacOS, ...).
Principes de sécurisation informatique :
Les failles de sécurité peuvent se trouver dans chaque application d'une machine, dans la machine qui les contient, dans le réseau qui relie les machines.
Il n'existe pas de système sécurisé à 100% : on ne peut faire qu'abaisser le risque d'erreurs de manipulation ou d'attaques à un niveau "acceptable", relativement au business modèle dans lequel opère le système considéré.
Plus on augmente le nombre d'applications sur un ordinateur, plus on accroît le risque d'erreurs de manipulation ou d'attaques. C'est comme une maison : plus elle comprend de fenêtres et de portes externes, plus il est coûteux de la protéger des cambrioleurs.
Politique de sécurisation (informatique domestique) :
Faites, à une fréquence au moins mensuelle, une double copie de vos données sur des supports externes (tels que clés USB) : une clé que vous videz avant de la remplir, l'autre sans la vider préalablement (de sorte que, contrairement à la première, elle contiendra une copie des fichiers que vous avez volontairement effacés de votre ordinateur.
Évitez de vous connectez à Internet via une borne wifi publique, ne le faites que si vous avez un service VPN payant.
Ne connectez jamais votre ordinateur à un appareil (dont clé USB) appartenant à une autre personne.
N'ouvrez pas des documents d'origine douteuse, et sinon, ne le faites qu'après les avoir scannés (par exemple au moyen de clamscan) ... et après avoir mis à jour la base de données du logiciel de scannage.
Abonnez-vous à l'infolettre debian-security-announce, et mettez à jour votre système d'exploitation (cf. infra la section #mise-a-jour-niveau) – de préférence à chaque annonce – afin de minimiser le nombre des failles identifiées.
N'installez que des programmes inclus dans votre distribution Linux-Debian, et le moins possible de programmes (car tout programme informatique est une source potentielle de failles).
Utilisez des mots de passe différents pour chaque application, et de longueur suffisante ⇒ pour ce faire, utilisez un gestionnaire de mots de passe (par exemple KeePassXC). Et pour son mot de passe, déterminez une phrase absurde d'au moins vingt caractères.
Préférez toujours un fournisseur d'accès Internet (FAI) qui garantit une adresse IP dynamique, c-à-d une adresse IP qui change à chaque fois que vous vous reconnectez à Internet (en l'occurrence il est recommandé de fermer sa connexion tous les soirs) (cf. /adresse-IP-dynamique).
Avant de vous engagez dans une transaction commerciale ou bancaire en ligne, vérifiez que l'adresse du site web est exactement celle du site de l'entreprise dont vous avez préalablement vérifié la crédibilité.
Ayez conscience que l'e-mail permet assez facilement d'usurper l'identité d'une personne : voir ./citoyennete-numerique#usurpation-email.
N'obtempérez à aucune injonction vous priant de communiquer des données confidentielles par e-mail ou par téléphone (il s'agit certainement d'une fraude).
N'utilisez jamais votre ordinateur professionnel pour des usages privés, ni votre ordinateur personnel pour des usages professionnels : utilisez deux ordinateurs.
Sécurité des organisations
Les principes traités dans la scetion ci-dessus concernent l'informatique domestique. Pour ce qui concerne le réseau d'une organisation, c'est évidemment plus complexe.
Pour synthétiser, on peut identifier six principes de bases [source, p.63, édition 2017] :
Pour approfondir, voici la documentation proposée par le gouvernement français « aux dirigeants, aux gestionnaires de risques et de crises (FSSI, RSSI, CISO...), aux directeurs du numérique, aux chefs de projets, ainsi qu’aux experts en cybersécurité des organisations publiques et privées. » : cyber.gouv.fr/securiser-son-organisation.
Il est très important de mettre à jour le système chaque semaine, afin :
Le fichier qui permet de gérer les mises à jours est /etc/apt/sources.list :
On distingue en fait :
En moyenne, environ une fois par semaine. La façon la plus rationnelle de procéder est de s'abonner à lists.debian.org/debian-security-announce, et de procéder à la mise à jour à chaque réception d'une annonce.
Obtenir le numéro de version ("version release") et le nom de code de votre distribution installée : $ lsb_release -d
N.B. Pour ne pas être perturbés dans la lecture des paragraphes suivants, il faut juste comprendre ceci : qu'il s'agisse d'une mise à jour ("update" en anglais) ou d'une mise à niveau ("upgrade" en anglais), Linux Debian utilise dans les deux cas des options de la commande apt, appelées ... "update" et "upgrade".
Sources :
wiki.debian.org/fr/DebianUpgrade ;
debian.org/releases/stable/?/release-notes/ch-upgrading.fr
La mise à niveau telle que ci-dessus est dite "par dessus". Une alternative est de procéder à une nouvelle installation (c-à-d réinstallation du SE, avec la nouvelle version "Stable") : on parle alors de "mise à niveau par écrasement" du système installé, (c-à-d comme lors de la libération de la machine). Chacune a ses avantages et inconvénients :
Obtenir le type de votre processeur (nécessaire pour installer la version stable adaptée) $ uname -r
Conclusion (mise à niveau) : comme dans les deux cas il faut de toute façon sauvegarder les fichiers personnels (obligatoire si mise à niveau "par écrasement", vivement conseillé si "par dessus"), je recommande la mise à niveau "par écrasement", dans la mesure où la réinstallation des fichiers personnels est assez rapide (et pour autant que l'inconvénient supposé soit réel...).
Quand une application (frontend ou backend) ne fonctionne pas, on en trouvera généralement la cause dans son journal ("log file" en anglais). Exemple d'utilisation de la commande journalctl :
Pour obtenir la liste des services actifs : $ systemctl list-units --type=service
Une commande qui "ne fonctionne pas" ? Avant de laisser tomber les bras, vérifiez ces trois causes possibles ... et très fréquentes :
Une autre possibilité est sudo plutôt que su - (N.B. sudo n'est pas installé par défaut dans Linux Debian. Une fois installé il faut en outre s'ajouter en tant qu'utilisateur de sudo [source] ).
Linux Debian est un SE qui est moins souvent sujet aux blocages que MS Windows ou macOS. Quand il s'agit d'une seule application, il n'est pas nécessaire de redémarrer la machine : Application > Outil système > Moniteur système (à installer) > Processus > Cliquer droit sur l'application bloquée > Terminer voire Tuer.
Quand le blocage est total, on peut accéder à un terminal sans GUI en faisant CTRL+ALT+F1 (CTRL+ALT+F7 pour revenir au GUI) ⇒
Pour compléter votre auto-formation aux technologies libres du web, il est vivement recommandé de suivre notre programme de formation par expérimentation, d'un réseau wifi décentralisé : /reseau-wifi-decentralise.
Auteur : F. Jortay | Contact : | Suivre : infolettre