Il s’occupe au minimum de :
Linux est un système d’exploitation :
Linux est supporté sur tout type d’architecture :
ARM | Intel/AMD |
---|---|
Architecture RISC | Architecture CISC |
A performance égale, réduction des coûts de production et meilleure efficacité thermique (ARM Cortex-A15 28nm 1.62mm²) | Complexité matérielle plus coûteuse (AMD Jaguar 28nm 3.1mm²) en conception et en énergie |
Stratégie commerciale : licence | Intel/AMD |
Unix | Unix / Windows |
Bootloader | Bios |
Les architectures ARM sont des architectures matérielles RISC 32 bits (ARMv1 à ARMv7) et 64 bits (ARMv8)1 développées par ARM Ltd depuis 1990 et introduites à partir de 1983 par Acorn Computers.
Dotés d’une architecture relativement plus simple que d’autres familles de processeurs, et bénéficiant d’une faible consommation, les processeurs ARM sont devenus dominants dans le domaine de l’informatique embarquée, en particulier la téléphonie mobile et les tablettes.
Ces processeurs sont fabriqués sous licence par un grand nombre de constructeurs.
Source : https://ir.arm.com/phoenix.zhtml?c=197211&p=irol-model et https://fr.wikipedia.org/wiki/Architecture_ARM
On trouvera ici une liste des ordinateurs embarqués dans https://en.wikipedia.org/wiki/Comparison_of_single-board_computers dans laquelle on retrouve des plateformes ARM, Intel et AMD, mais aussi des architectures MIPS.
À titre d’exemple, Openwrt est une distribution Linux pour routeurs domestiques dont on trouve ici la liste.
Les plateformes Raspberry Pi sont très populaires. Leur système d’explotation favori est une distribution Linux dont la distribution Raspbian (dérivé Debian) qui est la distribution officiellle et qui dispose d’un communauté très large.
Par exemple, Raspberry Pi 4, Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz, 1Go/2Go/4Go RAM, 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE intégrés, Gigabit Ethernet, 2 USB 3.0 ports; 2 USB 2.0 ports, 2 × micro-HDMI ports, 5V DC via USB-C connector (minimum 3A*) ou via GPIO header. Source : https://www.raspberrypi.org/products/raspberry-pi-4-model-b/specifications/
Autre exemple, comme le Raspberry Pi Zero WH, 1 CPU Broadcom BCM2835 candencé à 1GHz ARM11, 512MB RAM, Micro-USB sockets for data and power, 2.4GHz 802.11 b/g/n Wi-Fi, Bluetooth 4.1 LE, 40 pin GPIO header soudé. Il mesure 30X56X13 mm, il pèse 12 g. et il consomme 180 mA seulement !
Pour comparer les différents modèles Raspberry Pi : http://socialcompare.com/en/comparison/raspberrypi-models-comparison.
Gobalscale Mirabox, Source : https://wiki.ipfire.org/en/hardware/arm/globalscale/mirabox
PC Engines développe et vend de petits ordinateurs monocartes pour la mise en réseau à une clientèle mondiale. La société a été fondée en 1995 à Sunnyvale, Californie. Nous avons commencé par concevoir des PC embarqués sur mesure pour divers clients OEM. PC Engines a déménagé en Suisse en 2002. Depuis lors, nous nous sommes concentrés sur l’offre de nos produits à marque propre.
Le matériel embarqué APU1D4 de PC Engines par exemple est une plateforme AMD X64 (1 GHz dual Bobcat core) avec 4Go RAM embarqués, trois interfaces Gigabit Ethernet, un port pour une carte SD, 1 port USB 2.0, un ports m-sata, deux ports emplacements miniPCI express et un emplacement pour héberger une carte SIM. Il est dimensionné en 152.4 x 152.4 mm.
Sources : https://pcengines.ch/apu1d4.htm
Hak5 est une entreprise américaine spécialisée dans la conception de matériel de Hacking pour des attaques de proximité :
Intrusion Wi-Fi
Implants réseau filaire / sans-fil
Attaques de proximité USB/Ethernet
Le matériel est optimisé pour la légèreté et la faible consommation d’énergie. Il est dédié à des tâches spécialisées d’audit de sécurité. Il dispose de commutateurs et de LED que l’on peut programmer nativement.
Toutes les plateformes de type “ordinateur” (sauf “Plunder Bug” et “Bash Bunny”) fonctionnent sur une base de la distribution OpenWRT. Les charges d’audit sont conçues en Bash ou en Python. Les binaires de “pentesting” comme ncat, tcpdump, etc. et d’autres plus rares sont de fabrication “maison”.
Source de l’image Famille Unix
Source l’image Ubiqiuité du noyau Linux.
GNU est un projet de système d’exploitation libre lancé en 1983 par Richard Stallman, puis maintenu par le projet GNU. Son nom est un acronyme récursif qui signifie en anglais « GNU’s Not UNIX » (littéralement, « GNU n’est pas UNIX »). Il reprend les concepts et le fonctionnement d’UNIX. Le système GNU permet l’utilisation de tous les logiciels libres, pas seulement ceux réalisés dans le cadre du projet GNU. Son symbole est un gnou, un animal vivant en Afrique.
Il existe à ce jour deux distributions du système d’exploitation GNU :
GNU/Linux (souvent appelé “Linux”) est une variante du système d’exploitation GNU fonctionnant avec le noyau Linux. Le projet GNU avait originellement prévu le développement du noyau Hurd pour compléter le système, mais au début des années 1990, Hurd ne fonctionnait pas encore et son développement rencontrait encore des difficultés. L’arrivée du noyau Linux permit l’utilisation du système GNU sur les ordinateurs animés par des microprocesseurs de la famille Intel x86, en favorisant sa large diffusion par la complémentarité des projets.
Source : https://fr.wikipedia.org/wiki/GNU
Connaissance des systèmes d’exploitations les plus réputés et des distributions Linux.
Domaines de connaissance les plus importants :
Liste partielle de termes, fichiers et utilitaires utilisés pour cet objectif :
Une distribution Linux est composée :
https://en.wikipedia.org/wiki/Comparison_of_Linux_distributions
Pour une présentation graphique des familles GNU/Linux : https://prezi.com/ipbdborsg1qd/gnulinux-distribution-timeline-1210/
Distributions Généralistes
Si les outils “maison” des distributions (services, paquetages, …) et leurs comportements par défaut font toujours la différence, les procédures et les principes des nombreuses distributions deviennent de plus en plus similaires.
Aussi, les concepteurs de logiciels laissent la plupart du temps leur code ouvert, ce qui invite à les compiler soi-même dans leur dernière version. Même si la distribution et l’installation de binaires déjà compilés par les mainteneurs des distributions reste une préférence, de plus en plus de projets logiciels proposent leurs propres dépôts de paquetages.
Voici une liste non-exhaustive des distributions généralistes et leurs dérivés, par famille :
Distributions Spécifiques
Ces distributions sont plus spécifiques. Elles disposent chacunes de leur propre communauté, histoire et objectif. Par exemple,
Enfin, on connaîtra aussi bon nombre de distributions spécialisées qui remplissent un objectif assez précis. Elles se basent sur l’une ou l’autre des distributions généralistes ou spécialisées. Kali Linux est un bon exemple : basée Debian, elle propose ses propres dépôts pour des logiciels de sécurité.
Un cycle de révision fournit des mises à jour et des nouvelles versions. On peut connaître des :
Exemples :
Un cycle de maintenance est la durée pendant laquelle un logiciel est corrigé et maintenu sur un système de manière cohérente.
dpkg
, apt
, synaptic
Debian est une organisation composée uniquement de bénévoles, dont le but est de développer le logiciel libre et de promouvoir les idéaux de la communauté du logiciel libre. Le projet Debian a démarré en 1993, quand Ian Murdock invita tous les développeurs de logiciels à participer à la création d’une distribution logicielle, complète et cohérente, basée sur le nouveau noyau Linux. Ce petit groupe d’enthousiastes, d’abord subventionné par la Free Software Foundation, et influencé par la philosophie GNU, a grandi pour devenir une organisation composée par environ 1026 développeurs Debian.
Pour communiquer sa philosophie et attirer des développeurs qui adhèrent à ses principes, le projet Debian a publié un certain nombre de documents qui mettent en évidence ses valeurs et expliquent ce que signifie être un développeur Debian :
Le contrat social Debian est la déclaration des engagements de Debian vis-à-vis de la communauté du logiciel libre. Quiconque est d’accord pour se conformer à ce contrat social peut devenir un développeur Debian. Tout développeur Debian peut introduire de nouveaux logiciels dans Debian, à condition que ces paquets se conforment à nos critères de liberté et répondent à nos critères de qualité ;
Les directives Debian pour le logiciel libre (Debian Free Software Guidelines, ou DFSG) sont une déclaration claire et concise des critères Debian en matière de logiciel libre. Ce document a une grande influence sur le mouvement pour le logiciel libre ; il est à la base de la définition de l’Open Source ;
La charte Debian est une spécification détaillée des standards de qualité du projet Debian.
Les développeurs Debian participent aussi à d’autres projets : certains sont spécifiques à Debian, d’autres concernent tout ou partie de la communauté Linux. Voici quelques exemples :
Le Linux Standard Base (LSB) est un projet dont le but est de standardiser le système GNU/Linux de base. Les concepteurs de matériels et de logiciels pourront ainsi plus facilement concevoir des applications et des pilotes de périphériques pour un système Linux générique plutôt que pour une distribution particulière ;
Le standard pour l’organisation des systèmes de fichiers (FHS) est un effort pour standardiser l’organisation du système de fichiers Linux. Le FHS permettra aux développeurs de logiciels de se concentrer sur la conception de programmes, sans avoir à se préoccuper de la façon dont le paquet sera installé dans les différentes distributions GNU/Linux ;
Pour des informations plus générales sur Debian, voir la FAQ Debian.
Source : https://www.debian.org/releases/stable/amd64/ch01s01.html.fr
Note : Une distribution Debian est optimisée (officiellement) pour la plateforme Raspberry Pi (armhf) : Raspbian.
Source: The Ubuntu lifecycle and release cadence
Numéro de version | Nom de code | Date de sortie | Date de fin de soutien Postes de travail | Serveurs |
---|---|---|---|---|
Ubuntu 4.10 | The Warty Warthog (le phacochère verruqueux) | 20 octobre 2004 | 30 avril 2006 | idem |
Ubuntu 5.04 | The Hoary Hedgehog (le hérisson vénérable) | 8 avril 2005 | 31 octobre 2006 | idem |
Ubuntu 5.10 | The Breezy Badger (le blaireau jovial) | 13 octobre 2005 | 13 avril 2007 | idem |
Ubuntu 6.06 LTS | The Dapper Drake (le canard pimpant) | 1er juin 2006 | 14 juillet 2009 | 1er juin 2011 |
Ubuntu 6.10 | The Edgy Eft (Le Triton Agité) | 26 octobre 2006 | 25 avril 2008 | idem |
Ubuntu 7.04 | The Feisty Fawn (le faon courageux) | 19 avril 2007 | 19 octobre 2008 | idem |
Ubuntu 7.10 | The Gutsy Gibbon (le gibbon fougueux) | 18 octobre 2007 | 18 avril 2009 | idem |
Ubuntu 8.04 LTS | The Hardy Heron (le héron robuste) | 24 avril 2008 | 12 mai 2011 | 9 mai 2013 |
Ubuntu 8.10 | The Intrepid Ibex (Le bouquetin intrépide) | 30 octobre 2008 | 30 avril 2010 | idem |
Ubuntu 9.04 | The Jaunty Jackalope (le jackalope enjoué) | 23 avril 2009 | 23 octobre 2010 | idem |
Ubuntu 9.10 | The Karmic Koala (le koala karmique) | 29 octobre 2009 | 30 avril 2011 | idem |
Ubuntu 10.04 LTS | The Lucid Lynx (le lynx lucide) | 29 avril 2010 | 9 mai 2013 | 30 avril 2015 |
Ubuntu 10.10 | The Maverick Meerkat (le suricate rebelle) | 10 octobre 2010 | 10 avril 2012 | idem |
Ubuntu 11.04 | The Natty Narwhal (le narval chic) | 28 avril 2011 | 28 octobre 2012 | idem |
Ubuntu 11.10 | The Oneiric Ocelot (l’ocelot onirique) | 13 octobre 2011 | 9 mai 2013 | idem |
Ubuntu 12.04 LTS | The Precise Pangolin (le pangolin précis) | 26 avril 2012 | 28 avril 2017 | - |
Ubuntu 12.10 | The Quantal Quetzal (le quetzal quantique) | 18 octobre 2012 | 16 mai 2014 | idem |
Ubuntu 13.04 | The Raring Ringtail (le bassaris enthousiaste) | 25 avril 2013 | 27 janvier 2014 | idem |
Ubuntu 13.10 | The Saucy Salamander (la salamandre délurée) | 17 octobre 2013 | 17 juillet 2014 | idem |
Ubuntu 14.04 LTS | The Trusty Tahr (le bélier confiant) | 17 avril 2014 | Avril 2019 | - |
Ubuntu 14.10 | The Utopic Unicorn (la licorne utopique) | 23 octobre 2014 | 23 juillet 2015 | idem |
Ubuntu 15.04 | The Vivid Vervet (le vervet vif) | 23 avril 2015 | 4 février 2016 | idem |
Ubuntu 15.10 | The Wily Werewolf (le loup-garou rusé) | 22 octobre 2015 | 28 juillet 2016 | idem |
Ubuntu 16.04 LTS | The Xenial Xerus (le xerus hospitalier) | 21 avril 2016 | Avril 2021 | - |
Ubuntu 16.10 | The Yakkety Yak (le yak bavard) | 13 octobre 2016 | Juillet 2017 | idem |
Ubuntu 17.04 | The Zesty Zapus (le zapus plaisant) | 13 Avril 2017 | Janvier 2018 | idem |
Ubuntu 17.10 | The Artful Aardvark (l’oryctérope du Cap astucieux) | 19 Octobre 2017 | Juillet 2018 | idem |
Ubuntu 18.04 LTS | The Bionic Beaver (le castor bionique) | 26 avril 2018 | Avril 2023 | idem |
Ubuntu 18.10 | The Cosmic Cuttlefish (la seiche cosmique) | 18 Octobre 2018 | 18 Juillet 2019 | idem |
Ubuntu 19.04 | The Disco Dingo (le dingo disco) | 18 Avril 2019 | 23 Janvier 2020 | idem |
Ubuntu 19.10 | The Eoan Ermine (l’ermine de l’aube) | 17 octobre 2019 | 17 Juillet 2020 | idem |
Ubuntu 20.04 LTS | The Focal Fossa (le fossa focal) | 23 avril 2020 | Avril 2025 | idem |
Ubuntu 20.10 | The Groovy Gorilla (le gorille sensationnel) | 22 octobre 2020 | juillet 2021 | - |
Plusieurs images et variantes disponibles :
On peut télécharger gratuitement la dernière version de RHEL sur le site https://developers.redhat.com/downloads/.
Voir aussi Red Hat Enterprise Linux Life Cycle.
Le 8 décembre 2020 Red Hat annonce la fin de Centos 8 pour le 31/12/2021 (dernier support). Le projet se décline désormais en deux distributions (voir plus bas) :
RPM Package Manager (Red Hat Package Manager) est le logiciel de gestion des paquetages utilisé par les distributions Linux :
Centos Stream est projet en amont de RHEL et en aval de Fedora, un projet dit “midstream” caractérisé sa nature “rolling release” dans une branche de développement de RHEL, c’est-à-dire avec des mises-à-jour et une maintenace continue dans cette version majeure. La version initiale est basé sur la dernière version de CentOS Linux 8.
Beaucoup d’utilisateurs utilisaient Centos Linux comme version en aval gratuite de RHEL, alors que Centos Stream devient une version juste en amont mais toujours dans la même branche. Centos Stream est aussi en aval de Fedora déjà très stable. Justement si l’on ne paie pas Red Hat, pourquoi s’empêcher d’accéder aisément aux derniers développements gratuitement. Pour ceux qui restent sur l’usage désormais dépassé de Centos Linux, deux alternatives au moins sont possibles : Rocky Linux et Oracle Linux.
Rocky Linux est un projet de distribution entièrement communautaire et AlmaLinux est construit et maintenu par les développeurs de CloudLinux, une société qui fournit de l’hébergement de serveurs et des logiciels Linux. Ces deux projets de distribution sont en aval de RHEL visant à remplacer Centos Linux.
Le système d’exploitation AlmaLinux est un projet communautaire open-source qui vise à fournir une alternative à la version stable de CentOS. AlmaLinux est un système d’exploitation compatible au niveau binaire 1:1 avec RHEL® 8 et une collaboration globale de la communauté des développeurs, de l’industrie, du monde universitaire et de la recherche qui s’appuie sur cette technologie pour renforcer l’humanité.
Rocky Linux est un système d’exploitation d’entreprise communautaire conçu pour être compatible à 100 %, bit pour bit, avec la principale distribution Linux d’entreprise américaine, maintenant que son partenaire en aval a changé de direction. Il est développé de manière intensive par la communauté. Rocky Linux est dirigé par Gregory Kurtzer, fondateur du projet CentOS.
Oracle Linux (en abrégé OL, anciennement connu sous le nom d’Oracle Enterprise Linux ou OEL) est une distribution Linux packagée et librement distribuée par Oracle, disponible partiellement sous la licence publique générale GNU depuis fin 2006. Elle est compilée à partir du code source de Red Hat Enterprise Linux (RHEL), en remplaçant la marque Red Hat par celle d’Oracle.
Mais aussi,
pacman
.emerge
.opkg
. Les fichiers de configuration tiennent dans un seul dossier /etc/config
. Un API comme LuCI permet de gérer le système en ligne de commande et à travers une interface Web.Source : Historique des versions d’Android
Voici ce qu’en pensait James Zemlin en 2007 qui dirige la Linux Foundation.
Il n’y a plus que deux chevaux dans la course, Microsoft et Linux. Il y a des choses que Microsoft fait bien, c’est la promotion, la standardisation et la protection juridique de Windows. Ce que Microsoft fait dans ce domaine est exactement ce que nous devons également faire pour Linux: promouvoir, protéger et standardiser.
Affirmation de John Gossman, architecte dans le domaine de Microsoft Azure dix plus tard en 2017 :
Nous avons observé communément que les clients n’optent pas pour Red Hat ou pour Microsoft, mais qu’ils ont déjà choisi: ils ont en fait choisi l’utilisation des deux technologies. Les entreprises dans le monde entier recourent à Windows et à Red Hat Enterprise Linux, Java et .NET.
Avis de Laurent Bloch sur la position européenne dans le domaine des logiciels système et réseau :
La faiblesse européenne dans le domaine des logiciels système et réseau est une faiblesse à corriger, seuls les logiciels libres offrent aujourd’hui des perspectives exploitables. On notera que deux des trois leaders du marché mondial, Google et Apple, utilisent des logiciels libres (respectivement Linux et BSD) comme socles de leur offre, cependant que Microsoft utilise de plus en plus Linux, et contribue de façon massive à son développement.
James Zemlin, le patron de la fondation Linux, écrivait récemment sur Twitter suite à l’annonce de Microsoft de rejoindre l’Open Innovation Network et de partager quelque 60 000 de ses brevets avec la communauté open source :
Nous avons été ravis d’accueillir Microsoft en tant que membre Platinium de la Linux Foundation en 2016 et nous sommes ravis de voir leur évolution en tant que supporter à part entière de l’écosystème Linux et de la communauté open source », écrit Jim Zemlin, le patron de la fondation sur Twitter.
En 2018, il existe plus de VM Linux dans Microsoft Azure que sur les autres plateformes et Microsoft contribue à tous les projets open source.
]]>Aujourd’hui, un logiciel est considéré comme libre, au sens de la Free Software Foundation, s’il confère à son utilisateur quatre libertés (numérotées de 0 à 3) :
(0) la liberté d’exécuter le programme, pour tous les usages ;
(1) la liberté d’étudier le fonctionnement du programme et de l’adapter à ses besoins ;
(2) la liberté de redistribuer des copies du programme (ce qui implique la possibilité aussi bien de donner que de vendre des copies) ;
(3) la liberté d’améliorer le programme et de distribuer ces améliorations au public, pour en faire profiter toute la communauté.
L’accès au code source est une condition d’exercice des libertés 1 et 3.
La FSF précise quelques points. D’abord ces libertés doivent être irrévocables. Chacun doit avoir la possibilité d’en jouir sans devoir prévenir un tiers. La redistribution du programme doit pouvoir se faire sous toute forme, notamment compilée, éventuellement à la condition de rendre disponible le code source correspondant. L’utilisateur doit pouvoir fusionner des logiciels libres dont il n’est pas lui-même l’auteur. La FSF accepte toutefois des restrictions mineures quant à la façon dont un logiciel modifié doit être présenté lorsqu’il est redistribué.
Source : https://fr.wikipedia.org/wiki/Logiciel_libre
“L’idée centrale du copyleft est de donner à quiconque la permission d’exécuter le programme, de le copier, de le modifier, et d’en distribuer des versions modifiées - mais pas la permission d’ajouter des restrictions de son cru. C’est ainsi que les libertés cruciales qui définissent le logiciel libre sont garanties pour quiconque en possède une copie ; elles deviennent des droits inaliénables.”
— Richard Stallman
Licences sur des oeuvres écrites, web, multimédia.
Outil en ligne : https://creativecommons.org/choose/
Droits définis :
Combinaisons comme par exemple :
Les caractéristiques majeures de la licence Apache sont :
En 2015, la Linux Foundation a publié une étude selon laquelle le marché est fort demandeur en personnel qualifié en systèmes Linux.
Source de l’image : https://larszimmermann.de/business-models-for-open-source-hardware-open-design/
Un modèle de Business Open Source n’est pas à confondre avec la libre disponibilité d’un code performant maintenu et éprouvé.
En effet, il est possible de générer des revenus grâce aux produits Open Source, notamment à travers à l’écosystème Linux. Cela concerne beaucoup de métiers de l’IT ou des infrastructures traditionnelles même si les développeurs de code sont certainement les premiers concernés. On notera également l’émergence de nouveaux métiers ou de nouveaux marchés (IoT, Cloud, AI, …) directement liés au monde Open Source et à Linux.
Pour du personnel d’infrastructure IT (opérateurs), on peut tenir comptes de quelques considérations.
D’un autre point de vue, pour le marché sur tous les secteurs, disposer d’une technologie universelle qui fait fonctionner les machines (Linux), le cloud (Openstack) et le web parmi une multitude de projets :
Selon l’auteur, céder librement une partie de sa production place la plus haute plus-value sur l’intelligence soit l’humain.
Mais le choix de technologies Open Source n’est pas un parcours aisé pour beaucoup de raisons. Ce choix n’est certainement adapté en toute situation, car l’objectif restera toujours la satisfaction finale du commanditaire (soit du client). Par contre, imaginer qu’un projet Open Source ne pourrait pas rivaliser avec un projet propriétaire est certainement une erreur. Si un gain est souvent possible, il s’agira souvent d’une autre voire d’une meilleure répartition des moyens mis à disposition. Il s’agira bien plus souvent alors d’une adaptation culturelle à réussir au sein de l’organisation.
Le niveau de maîtrise à acquérir pour l’utiliser de manière professionnelle demande rigueur, travail et volonté bien sûr, mais il demande surtout de la pratique, toujours plus et actualisée. La formidable boîte-à-outil libre Linux nous offre justement la possibilité de déployer des technologies complexes, souvent simulées mais proche de réalité, voire disponibles directement à partir du nuage avec des exigences en ressources informatiques accessibles au plus grand nombre.
Il s’agit de l’avis succinct de l’auteur, qu’en pensez-vous ?
Source : https://en.wikipedia.org/wiki/Linux_kernel#Estimated_cost_to_redevelop et https://upload.wikimedia.org/wikipedia/commons/6/68/Redevelopment_costs_of_Linux_kernel.png
La Fondation Linux (en anglais Linux Foundation) est un consortium à but non lucratif fondé le 21 janvier 2007, il résulte de la fusion entre l’Open Source Development Labs et le Free Standards Group.
La Linux Foundation a pour mission de protéger, standardiser et promouvoir Linux en procurant les ressources et services centralisés nécessaires à concurrencer de manière efficace les autres systèmes d’exploitation.
La Linux Foundation regroupe 70 membres parmi lesquels on trouve Fujitsu, Hitachi, HP, IBM, Intel, AMD, NEC, Novell, Oracle, LG Group, Yahoo!, Samsung, Twitter et d’autres. Cette organisation est dirigée par Jim Zemlin, ancien directeur du FSG qui maintient en place les principaux développeurs, dont Linus Torvalds, sponsorisé par la fondation. On peut y adhérer individuellement pour 99$ ou gratuitement en tant qu’étudiant.
Au côté des administrateurs proposés par ses membres, on remarquera la présence de Mark Shuttleworth fondateur du projet Ubuntu.
Ces dernières années la Linux Foundation a étendu ses services à de l’organisation d’événements, de la formation et des certifications ainsi qu’au soutien de projets collaboratifs. Des exemples de ces projets collaboratifs sont : OpenDaylight, Open Platform for NFV (OPNFV), AllSeen Alliance, Cloud Foundry, Node.js Foundation. Ses domaines d’activité sont : Automotive Grade Linux, le site Linux.com, Linux Videos, Linux Developer Network, la formation, Linux Standard Base (LSB), Carrier Grade Linux, OpenPrintinget Patent Commons Project.
Sources : https://fr.wikipedia.org/wiki/Fondation_Linux, https://en.wikipedia.org/wiki/Linux_Foundation, https://www.linuxfoundation.org/
Linux est un OS qui peut être installé sur :
La plupart des services Web sont assurés par des logiciels libres :
Parmi les bases de données les plus connues PostGreSQL et MariaDB (fork compatible et reconnu de MySQL).
Pour d’autres approches ou d’autres usages :
Un service MTA (SMTP) transfère le courrier électronique à travers l’Internet. On citera :
Linux offre des services de fichiers pour une panoplie de protocoles :
Une distribution Linux comme Openfiler offre des services de stockage (FreeNAS est basé BSD).
Langage de programmation :
Plateforme de développement :
Plateforme de développement Web :
CMS et blogs :
E-Commerce :
ERP :
On peut aussi se faire une idée des appliances virtuelles open source disponibles sur Bitnami.
]]>Dérivés parmi bien d’autres des distributions traditionnelles :
Plus exotiques, plus bas des distributions plus fondamentales :
Cette présentation utilise un ISO LiveCD de Centos 7 (sans LibreOffice) avec Gnome (https://ftp.belnet.be/ftp.centos.org/7/isos/x86_64/).
Si vous avez une préférence
Vous trouverez des applications courantes telles que :
Systemd
remplace les scripts d’initialisationip
(pile iproute2
qui remplace net-tools
)Les cookies gardent des traces de vos visites sur les sites Web. Il est conseillé de ne pas les enregistrer ou des les effacer après chaque session.
Sur un système, on dispose de :
Plusieurs stratégies de comptes locaux :
Mots de passes forts :
$
(
#
!
[
;
.
A ce moment, on peut éjecter l’image et redémarrer l’ordinateur …
nano
, vi
et emacs
. Ici, gedit
:Un environnement de bureau est un ensemble de programmes qui permettent de manipuler l’ordinateur à travers une interface graphique qui fait analogie à un bureau. Le terme “environnement de bureau” provient de la métaphore du bureau sur laquelle sont basés ces produits.
De nombreux systèmes d’exploitation ont un environnement de bureau incorporé. À l’inverse, avec le système de fenêtrage X des systèmes d’exploitation Unix, plusieurs environnements de bureau sont disponibles. (https://fr.wikipedia.org/wiki/Environnement_de_bureau)
C’est ainsi qu’un environnement de bureau Linux est composé de plusieurs éléments distincts :
Freedesktop.org est un organisme de collaboration entre différents projets de logiciels libres comme GNOME, KDE, Xfce, Enlightenment, GStreamer, Xgl/AIGLX ou encore X.Org, qui travaille à l’interopérabilité des environnements graphiques sous les systèmes utilisant X Window System comme GNU/Linux (ou sur d’autres UNIX) en produisant des logiciels et des spécifications.
Les deux principaux environnements de bureau actuels sont GNOME et KDE, mais le but de Freedesktop est d’être neutre et de proposer des spécifications (presque élevées au rang de standards) afin de faciliter le travail de développeurs en améliorant la compatibilité des programmes GNOME et KDE, mais aussi de rendre l’expérience des utilisateurs finaux la plus agréable possible.
Freedesktop n’a pas pour objectif de standardiser les interfaces graphiques utilisateur, qui doivent au contraire avoir chacune leurs originalités pour convenir à des publics différents, mais d’harmoniser l’infrastructure : copier/coller, raccourcis claviers, détection du matériel, etc. Freedesktop encourage des protocoles unifiés et des symboles distincts (voir protocole-symbole).
Freedesktop a été fondé en mars 2000, par Havoc Pennington de Red Hat.
Source : https://fr.wikipedia.org/wiki/Freedesktop.org
GNOME, acronyme de GNU Network Object Model Environment, est un environnement de bureau libre convivial dont l’objectif est de rendre accessible l’utilisation du système d’exploitation GNU au plus grand nombre ; cette interface est actuellement populaire sur les systèmes GNU/Linux et fonctionne également sur la plupart des systèmes de type UNIX.
Remis en cause depuis le passage à la version 3, le projet GNOME manquerait de développeurs, dont une grande partie sont des employés de la société Red Hat.
Le mécontentement suscité par les suppressions répétitives de fonctionnalités et par l’ergonomie de GNOME 3 a conduit à deux initiatives :
Ubuntu prend quelque distance avec GNOME : en parallèle du développement (public) de GNOME 3 dont GNOME Shell est la pierre angulaire, Canonical a développé (en interne) sa propre interface graphique système pour Ubuntu : Unity, expliquant rechercher une unification sans couture entre les appareils à écran tactile et ceux utilisant des souris et autres pointeurs classiques.
Les différences dans l’infrastructure même des deux projets vont en grandissant : outre GNOME Shell vs. Unity (et donc Mutter vs Compiz), citons GDM vs. LightDM, chacun son framework d’authentification unique, Wayland vs Mir… Pendant un temps Canonical a promu également son propre système de démarrage Upstart avant de se ranger en fin de compte à Systemd.
Source : https://fr.wikipedia.org/wiki/GNOME
KDE est un projet de logiciel libre historiquement centré autour d’un environnement de bureau pour systèmes UNIX. Ce projet a évolué en un ensemble de programmes :
KDE est inclus dans la plupart des distributions GNU/Linux populaires. Il est l’environnement de bureau par défaut de certaines comme openSUSE et Mageia.
Source : https://fr.wikipedia.org/wiki/KDE
LXDE est un environnement de bureau libre pour les systèmes de type Unix, tels que Linux ou BSD. Le nom LXDE est l’acronyme de “Lightweight X11 Desktop Environment” (environnement de bureau X11 léger).
LXDE a pour but de proposer un nouvel environnement de bureau léger, rapide et utilisant peu de ressources, au détriment du nombre de fonctionnalités. Il se veut modulaire : ses composants dépendent peu les uns des autres.
Source : https://fr.wikipedia.org/wiki/LXDE
Xfce est un environnement de bureau léger utilisant la boîte à outils GTK+ 2.x et destiné aux systèmes d’exploitation apparentés à UNIX.
Xfce est fondé sur trois principes : rapidité, économie de ressources et simplicité d’utilisation. Son logo, une souris se déplaçant à grande vitesse, exprime ces idées. L’un des autres buts de Xfce est d’être conforme aux normes, plus particulièrement avec les spécifications du Freedesktop.org.
Si on a démarré avec un LiveDVD Centos GNOME, on peut tester les autres solutions :
yum -y install epel-release
yum -y update
yum group install "Bureau MATE"
yum group install "Xfce"
yum group install "KDE Plasma Workspaces"
Installation des logins graphiques :
yum groupinstall "X Window System"
Choix de l’environnement graphique par défaut
systemctl set-default graphical.target
Mise à jour de la distribution.
apt-get update
apt-get -y upgrade
apt-get -y dist-upgrade
Gnome.
apt-get install gnome
KDE.
apt-get install kde-standard
XFCE.
apt-get install xfce4
LXDE.
apt-get install lxde
MATE.
apt-get install mate-desktop-environment
Gnome.
sudo apt install gnome-core
KDE.
sudo apt install kde-minimal
XFCE.
sudo apt install xfce4
LXDE.
sudo apt install lubuntu-core
Gnome.
sudo apt install ubuntu-desktop
KDE.
sudo apt install kubuntu-desktop
XFCE.
sudo apt install xubuntu-desktop
LXDE.
sudo apt install lubuntu-desktop
Mate pour Ubuntu : voir https://wiki.mate-desktop.org/download#ubuntu et https://ubuntu-mate.org/
sudo apt install ubuntu-mate-desktop
Il existe un guide complet pour répondre à toutes les questions concernant l’installation de Debian : Manuel d’installation pour la distribution Debian GNU/Linux.
Le document qui suit est tiré du livre “Le cahier de l’administrateur Debian, Chapitre 4. Installation” sous licence CC-BY-SA et GNU.
Pour utiliser la distribution Debian, il faut l’avoir installée sur un ordinateur, tâche complexe prise en charge par le programme debian-installer. Une bonne installation implique de nombreuses opérations. Ce chapitre les passe en revue dans l’ordre dans lequel elles sont habituellement effectuées.
L’installateur est toujours basé sur
debian-installer
. Sa conception modulaire le rend
opérationnel dans de nombreux scénarios et lui a permis d’évoluer pour
s’adapter aux inévitables changements. Malgré les nombreuses contraintes
imposées par la prise en charge d’une large palette d’architectures, cet
installateur est très accessible au débutant puisqu’il assiste
l’utilisateur à chaque étape du processus. La détection automatique du
matériel, le partitionnement assisté et l’interface graphique ont résolu
l’essentiel des problèmes que les néophytes pouvaient rencontrer dans
les premières années de Debian.
L’installation requiert 80 Mo de mémoire vive et au moins 700 Mo d’espace disque. Notons toutefois que ces chiffres s’appliquent à l’installation d’un système très limité dénué d’un bureau graphique. Il vaut mieux prévoir un minimum de 512 Mo de mémoire vive et de 5 Go d’espace disque pour un poste bureautique de base.
L’installation d’un système Debian est possible depuis divers types de supports, pour peu que le BIOS de la machine le permette. On pourra ainsi amorcer grâce à un CD-Rom, une clé USB, voire à travers un réseau.
B.A.-BA BIOS, l’interface matériel/logiciel
Le BIOS (abréviation de Basic Input/Output System, ou système élémentaire d’entrées-sorties) est un logiciel intégré à la carte mère (carte électronique reliant tous les périphériques) et exécuté au démarrage du PC pour charger un système d’exploitation (par l’intermédiaire d’un chargeur d’amorçage adapté). Il reste ensuite présent en arrière-plan pour assurer une interface entre le matériel et le logiciel (en l’occurrence, le noyau Linux).
Le support d’installation le plus employé est le CD-Rom (ou le DVD-Rom, qui se comporte exactement de la même manière) : l’ordinateur s’amorce sur ce dernier et le programme d’installation prend la main.
Divers types de CD-Rom ciblent chacun des usages différents. netinst (installation réseau) contient l’installateur et le système de base de Debian ; tous les autres logiciels seront téléchargés. Son « image », c’est-à-dire le système de fichiers ISO-9660 présentant le contenu exact du disque, n’occupe pas plus de 150 à 280 Mo (selon l’architecture). À l’opposé, le jeu complet de disques propose tous les paquets et permet d’installer le système sur un ordinateur n’ayant pas accès à Internet — il nécessite environ 84 CD-Rom (ou 12 DVD-Rom, ou encore deux disques Blu-ray). Mais les logiciels sont répartis sur les disques en fonction de leur popularité et de leur importance ; les trois premiers suffiront donc à la majorité des installations car ils contiennent les logiciels les plus utilisés.
Il existe un autre type d’image, mini.iso
, qui n’est
disponible que comme un sous-produit de l’installateur. Cette image
contient seulement le strict minimum requis pour configurer le réseau,
tout le reste est téléchargé lors de l’installation (y compris d’autres
portions du programme d’installation lui-même, ce qui explique que ces
images ont tendance à ne plus fonctionner lorsqu’une nouvelle version du
programme d’installation est publiée). Ces images se trouvent sur les
miroirs Debian habituels, dans le dossier
dists/release/main/installer-arch/current/images/netboot/
.
ASTUCE Disques multi-architectures
La plupart des CD-Rom et DVD-Rom d’installation correspondent à une seule architecture matérielle. Si l’on souhaite télécharger les images complètes, il faudra donc prendre soin de choisir celles qui correspondent à l’architecture matérielle de l’ordinateur sur lequel on souhaite les utiliser.
Quelques images CD-Rom/DVD-Rom présentent la particularité de fonctionner sur plusieurs architectures. On trouve ainsi une image de CD-Rom combinant les images netinst des architectures i386 et amd64. Il existe aussi une image de DVD-Rom comprenant l’installateur et une sélection de paquets binaires pour i386 et amd64, ainsi que les paquets sources correspondants.
Pour se procurer des CD-Rom Debian, on peut bien sûr télécharger et graver leur image. Il est aussi possible de les acheter et de faire par la même occasion un petit don au projet. Consultez le site web pour connaître la liste des vendeurs et des sites de téléchargement des images de ces CD-Rom.
→ https://www.debian.org/CD/index.fr.html
Comme la plupart des ordinateurs sont capables de démarrer depuis un périphérique USB, il est également possible d’installer Debian à partir d’une clé USB (qui n’est rien de plus qu’un petit disque à mémoire flash).
Le manuel d’installation explique comment créer une clé USB contenant
debian-installer
. La procédure est très simple puisque les
images ISO des architectures i386 et amd64 sont des images hybrides qui
peuvent démarrer aussi bien depuis un CD-Rom que depuis une clé USB.
Il faut tout d’abord identifier le nom de périphérique de la clé USB
(ex : /dev/sdb
). Le plus simple pour cela est de consulter
les messages émis par le noyau à l’aide de la commande
dmesg
. Ensuite, il faut copier l’image ISO préalablement
récupérée (par exemple debian-8.0.0-amd64-i386-netinst.iso
)
avec la commande
cat debian-8.0.0-amd64-i386-netinst.iso >/dev/sdb; sync
.
Cette commande requiert les droits administrateurs car elle accède
directement à la clé USB et écrase aveuglément son contenu.
Une explication plus détaillée est disponible dans le manuel de l’installateur. Elle couvre notamment une méthode alternative (et plus complexe) pour préparer votre clé USB mais qui permet de personnaliser les options par défaut de l’installateur (celles consignées dans la ligne de commande du noyau).
→ https://www.debian.org/releases/stable/amd64/ch04s03.html
De nombreux BIOS permettent d’amorcer directement sur le réseau en téléchargeant un noyau et un système de fichiers minimal. Cette méthode (que l’on retrouve sous différents noms, notamment PXE ou boot TFTP) peut être salvatrice si l’ordinateur ne dispose pas de lecteur de CD-Rom ou si le BIOS ne peut amorcer sur un tel support.
Cette méthode d’initialisation fonctionne en deux étapes. Premièrement, lors du démarrage de l’ordinateur, le BIOS (ou la carte réseau) émet une requête BOOTP/DHCP pour obtenir une adresse IP de manière automatique. Lorsqu’un serveur BOOTP ou DHCP renvoie une réponse, celle-ci inclut un nom de fichier en plus des paramètres réseau. Après avoir configuré le réseau, l’ordinateur client émet alors une requête TFTP (Trivial File Transfer Protocol) pour obtenir le fichier qui lui a été indiqué. Ce fichier récupéré, il est exécuté comme s’il s’agissait d’un chargeur de démarrage, ce qui permet de lancer le programme d’installation Debian — celui-ci s’exécute alors comme s’il provenait d’un disque dur, d’un CD-Rom ou d’une clé USB.
Tous les détails de cette méthode sont disponibles dans le guide d’installation (section « Préparer les fichiers pour amorcer depuis le réseau avec TFTP »).
→ https://www.debian.org/releases/stable/amd64/ch05s01.html#boot-tftp
→ https://www.debian.org/releases/stable/amd64/ch04s05.html
Lorsqu’il s’agit de déployer des installations personnalisées sur un grand nombre d’ordinateurs, on opte généralement pour des approches plus automatisées. Selon les cas et la complexité des installations à effectuer, on emploiera plutôt FAI (Fully Automatic Installer ou un CD-Rom d’installation personnalisé avec préconfiguration (voir « Debian-installer avec préconfiguration »).
Dès que le BIOS a lancé l’amorçage sur le CD-Rom (ou le DVD-Rom), le menu du chargeur d’amorçage Isolinux apparaît. À ce stade, le noyau Linux n’est pas encore chargé ; ce menu permet justement de choisir le noyau à démarrer et de saisir d’éventuelles options à lui passer.
Pour une installation standard, il suffit de sélectionner (avec les touches flèches) Install ou Graphical install, puis d’appuyer sur la touche Entrée pour enchaîner sur la suite de l’installation. Si le DVD-Rom est de type « Multi-arch » et si la machine dispose d’un processeur 64 bits de Intel ou AMD, des entrées de menu 64 bit install et 64 bit graphical install permettent d’installer la variante 64 bits (amd64) au lieu de celle par défaut (i386 en 32 bits). Dans la pratique, la variante 64 bits peut être utilisée de manière quasi systématique : les processeurs récents fonctionnent tous en 64 bits et cette variante gère mieux les grosses quantités de mémoire vive dont disposent les ordinateurs récents.
POUR ALLER PLUS LOIN 32 ou 64 bits ?
La différence fondamentale entre les systèmes 32 et 64 bits est la taille des adresses mémoire. En théorie, un système 32 bits ne peut exploiter plus de 4 Go de mémoire vive (232 octets). En pratique, il est possible de contourner cette limite en utilisant la variante
686-pae
du noyau à condition que le processeur gère la fonctionnalité PAE (Physical Address Extension). Son usage a toutefois un impact non négligeable sur les performances du système. C’est pourquoi un serveur disposant d’une grande quantité de mémoire vive a tout intérêt à exploiter le mode 64 bits.Pour un poste bureautique (où quelques pour cent de performance sont négligeables), on sera plus sensible au fait que certains logiciels propriétaires ne sont pas disponibles en version 64 bits (Skype par exemple). Il est techniquement possible de les faire fonctionner sur le système 64 bits, mais il faudra installer les versions 32 bits de toutes les bibliothèques nécessaires (voir Section 5.4.5, « Support multi-architecture ») et éventuellement faire usage de
setarch
oulinux32
(dans le paquet util-linux) pour tromper les applications sur la nature du système.
B.A.-BA Chargeur d’amorçage
Le chargeur d’amorçage (ou de démarrage), bootloader en anglais, est un programme de bas niveau chargé de démarrer le noyau Linux juste après que le BIOS lui a passé la main. Pour mener cette mission à bien, il doit être capable de « retrouver » sur le disque le noyau Linux à démarrer. Sur les architecture amd64 et i386, les deux programmes les plus employés pour effectuer cette tâche sont LILO, le plus ancien, et GRUB, son successeur plus moderne. Isolinux et Syslinux sont des alternatives souvent employées pour démarrer depuis des supports amovibles.
Derrière chaque entrée de menu se cache une ligne de commande de démarrage spécifique que l’on peut personnaliser au besoin en appuyant sur TAB avant de valider et démarrer. L’entrée de menu Help fait apparaître l’ancienne interface en ligne de commande où les touches F1 à F10 affichent différents écrans d’aide détaillant les options possibles à l’invite. Sauf exceptions, vous n’aurez normalement pas besoin de vous servir de cette possibilité.
Le mode « expert » (accessible dans le menu Advanced options, « Options avancées ») détaille toutes les options possibles au cours de l’installation et permet de naviguer entre les différentes étapes sans qu’elles s’enchaînent automatiquement. Attention, ce mode très verbeux pourra dérouter par la multitude des choix de configuration qu’il propose.
Figure 1. Écran de démarrage
Une fois démarré, le programme d’installation nous guide d’étape en étape tout au long du processus. Cette section détaille chacune d’entre elles, leurs tenants et leurs aboutissants. Nous suivons le déroulement correspondant à un DVD-Rom Multi-Arch (plus précisément, la version beta4 de l’installateur de Jessie) ; les autres types d’installations (netinst notamment) peuvent varier quelque peu. Nous allons également nous concentrer sur l’installation en mode graphique, mais elle ne diffère de l’installation « classique » que par l’aspect visuel.
Le programme d’installation débute en anglais mais la toute première étape consiste à choisir la langue utilisée par la suite. Opter pour le français fournira une installation entièrement traduite (et un système configuré en français à l’issue du processus). Cela permettra également de proposer des choix par défaut plus pertinents lors des étapes suivantes (la disposition du clavier notamment).
B.A.-BA Naviguer grâce au clavier
Certaines étapes du processus d’installation nécessitent une saisie d’informations. Ces écrans disposent alors de plusieurs zones qui peuvent « avoir le focus » (zone de saisie de texte, cases à cocher, liste de choix, boutons OK et Annuler), et la touche Tabulation permet de circuler entre elles.
En mode graphique, on utilise la souris comme on l’utiliserait sur un bureau graphique fonctionnel.
Figure 2. Choix de la langue
La deuxième étape consiste à choisir le pays. Combinée à la langue, cette information permettra de proposer une disposition de clavier encore plus adaptée. Elle influera aussi sur la configuration du fuseau horaire. Dans le cas de la France, un clavier de type AZERTY sera proposé et le fuseau horaire sera Europe/Paris
Figure 3. Choix du pays
Le clavier Français proposé convient pour les claviers AZERTY traditionnels. Il prend en charge le symbole euro.
Figure 4. Choix du clavier
Cette étape est entièrement automatique dans la plupart des cas. L’installateur détecte le matériel et cherche notamment à identifier le lecteur de CD-Rom employé afin de pouvoir accéder à son contenu. Il charge les modules correspondant aux différents éléments détectés, puis « monte » le CD-Rom afin de pouvoir le lire. Les étapes précédentes étaient entièrement contenues dans l’image de démarrage intégrée au CD-Rom, fichier de taille limitée et chargé en mémoire par le BIOS lors de l’amorçage du CD-Rom.
L’installateur gère l’immense majorité des lecteurs, en particulier les périphériques ATAPI (parfois appelés IDE ou EIDE) standards. Toutefois, si la détection du lecteur de CD-Rom échoue, l’installateur propose de charger (par exemple depuis une clé USB) un module noyau correspondant au pilote du CD-Rom.
Le contenu du CD-Rom désormais accessible, l’installateur rapatrie tous les fichiers nécessaires à la poursuite de sa tâche. Cela comprend des pilotes supplémentaires pour le reste du matériel (et notamment la carte réseau) ainsi que tous les composants du programme d’installation.
Cette étape automatique cherche à identifier la carte réseau et à charger le module correspondant. À défaut de reconnaissance automatique, il est possible de sélectionner manuellement le module à charger. Si aucun module ne fonctionne, il est possible de charger un module spécifique depuis un périphérique amovible. Cette dernière solution ne sert réellement que si le pilote adéquat n’est pas intégré au noyau Linux standard s’il est disponible par ailleurs, par exemple sur le site du fabricant.
Cette étape doit absolument réussir pour les installations de type netinst puisque les paquets Debian doivent y être chargés sur le réseau.
Soucieux d’automatiser au maximum le processus, l’installateur tente une configuration automatique du réseau par DHCP (pour IPv4) et par découverte du réseau IPv6. Si celle-ci échoue, il propose plusieurs choix : réessayer une configuration DHCP normale, effectuer une configuration DHCP en annonçant un nom de machine, ou mettre en place une configuration statique du réseau.
Cette dernière demande successivement une adresse IP, un masque de sous-réseau, une adresse IP pour une éventuelle passerelle, un nom de machine et un nom de domaine.
ASTUCE Configuration sans DHCP
Si le réseau local est équipé d’un serveur DHCP que vous ne souhaitez pas utiliser car vous préférez définir une adresse IP statique pour la machine en cours d’installation, vous pourrez lors du démarrage sur le CD-Rom ajouter l’option
netcfg/use_dhcp=false
. Il suffit de se placer sur l’entrée de menu désirée, d’appuyer sur TAB et d’ajouter l’option ci-dessus avant de valider par Entrée.
Le compte super-utilisateur root
, réservé à l’administrateur de la machine, est automatiquement créé lors de l’installation : c’est pourquoi un mot de passe est demandé. Une confirmation (ou deuxième saisie identique) évitera toute erreur de saisie, difficile à retrouver ensuite !
Figure 5. Mot de passe administrateur
SÉCURITÉ Mot de passe administrateur
Le mot de passe de l’utilisateur
root
doit être long (8 caractères ou plus) et impossible à deviner. En effet, tout ordinateur (et a fortiori tout serveur) connecté à Internet fait régulièrement l’objet de tentatives de connexions automatisées avec les mots de passe les plus évidents. Parfois, il fera même l’objet d’attaques au dictionnaire, où diverses combinaisons de mots et de chiffres sont testées en tant que mots de passe. Évitez aussi les noms des enfants ou parents et autres dates de naissance : de nombreux collègues les connaissent et il est rare que l’on souhaite leur donner libre accès à l’ordinateur concerné.Ces remarques valent également pour les mots de passe des autres utilisateurs, mais les conséquences d’une compromission sont moindres dans le cas d’un utilisateur sans droits particuliers.
Si l’inspiration vient à manquer, il ne faut pas hésiter à utiliser des générateurs de mot de passe comme
pwgen
(dans le paquet de même nom).
Debian impose également de créer un compte utilisateur standard pour que l’administrateur ne prenne pas la mauvaise habitude de travailler en tant que root
. Le principe de précaution veut en effet que chaque tâche soit effectuée avec le minimum de droits nécessaires, pour limiter l’impact d’une mauvaise manipulation. C’est pourquoi l’installateur vous demandera successivement le nom complet de ce premier utilisateur, son identifiant et son mot de passe (deux fois, pour limiter les risques d’erreur de saisie).
Figure 6. Nom du premier utilisateur
Si le réseau est disponible, l’horloge interne du système est mise à jour (de façon ponctuelle et instantanée) à l’aide d’un serveur NTP. Les horodatages des logs seront ainsi précis dès le premier démarrage. Pour qu’ils restent précis dans la durée, il faudra tout de même mettre en place un démon NTP après l’installation initiale.
Cette étape automatique détecte les disques susceptibles d’accueillir Debian. Ils seront proposés dans l’étape suivante : le partitionnement.
CULTURE Utilité du partitionnement
Le partitionnement, étape indispensable de l’installation, consiste à diviser l’espace disponible sur les disques durs (chaque sous-partie étant alors appelée une « partition ») en fonction des données à stocker et de l’usage prévu de l’ordinateur. Cette étape intègre aussi le choix des systèmes de fichiers employés. Toutes ces décisions ont une influence en termes de performances, de sécurité des données et d’administration du serveur.
L’étape du partitionnement est traditionnellement difficile pour les utilisateurs débutants. Il faut en effet définir les différentes portions des disques (ou « partitions ») qui accueilleront le système de fichiers de Linux et sa mémoire virtuelle (swap). La tâche se complique si un autre système d’exploitation existe déjà et si on souhaite le conserver. En effet, il faudra alors veiller à ne pas altérer ses partitions (ou à les redimensionner de manière indolore).
Fort heureusement, le logiciel de partitionnement dispose d’un mode « assisté » qui propose à l’utilisateur les partitions à créer. Dans la majorité des cas, il suffit de valider ses propositions.
Figure 7. Choix du mode de partitionnement
Le premier écran de l’utilitaire de partitionnement propose d’employer un disque complet pour créer les diverses partitions. Pour un ordinateur (neuf) qui sera dédié à Linux, cette option est vraisemblablement la plus simple et l’on choisira donc l’option Assisté - utiliser un disque entier. Si l’ordinateur compte deux disques pour deux systèmes d’exploitation, consacrer un disque à chacun est également une solution facilitant le partitionnement. Dans ces deux cas, l’écran suivant permet de choisir le disque à consacrer à Linux en validant l’option correspondante (par exemple, SCSI1 (0,0,0) (sda) - 12.9 GB ATA VBOX HARDDISK pour installer Debian sur le premier disque). Vous débutez alors un partitionnement assisté.
Figure 8. Disque à utiliser pour le partitionnement assisté
Le partitionnement assisté est également capable de mettre en place des volumes logiques LVM au lieu de partitions (voir plus bas). Le reste du fonctionnement restant le même, nous ne détaillerons pas les options Assisté - utiliser tout un disque avec LVM (chiffré ou non).
Dans les autres cas, quand Linux doit cohabiter avec des partitions déjà présentes, il faudra opter pour un partitionnement manuel.
L’outil de partitionnement assisté propose trois méthodes de partitionnement, qui correspondent à des usages différents.
Figure 9. Partitionnement assisté
La première méthode s’intitule Tout dans une seule partition. Toute l’arborescence du système Linux est stockée dans un seul système de fichiers, correspondant à la racine /
. Ce partitionnement simple et robuste convient parfaitement pour des ordinateurs personnels ou mono-utilisateurs. En réalité, deux partitions verront le jour : la première abritera le système complet ; la seconde, la mémoire virtuelle.
La deuxième méthode, Partition /home séparée, est similaire mais découpe l’arborescence en deux : une partie contient le système Linux (/
) et la seconde les répertoires personnels (c’est-à-dire les données des utilisateurs, dans les fichiers placés sous /home/
).
La dernière méthode de partitionnement, intitulée Partitions /home, /var et /tmp séparées, convient pour les serveurs et les systèmes multi-utilisateurs. Elle découpe l’arborescence en de nombreuses partitions : en plus de la racine (/
) et des comptes utilisateurs (/home/
), elle prévoit des partitions pour les données des logiciels serveurs (/var/
) et pour les fichiers temporaires (/tmp/
). Ces divisions ont plusieurs avantages. Les utilisateurs ne pourront pas bloquer le serveur en consommant tout l’espace disque disponible (ils ne pourront remplir que /tmp/
et /home/
). Les données des démons (et notamment les logs) ne pourront pas non plus bloquer le reste du système.
B.A.-BA Choisir un système de fichiers
Un système de fichiers définit la manière d’organiser les données sur un disque. Chaque système de fichiers existant a ses mérites et ses limitations. Certains sont plus robustes, d’autres plus efficaces : si l’on connaît bien ses besoins, le choix d’un système de fichiers plus adapté est possible. De nombreuses comparaisons ont déjà été réalisées ; il semblerait que ReiserFS soit particulièrement efficace pour la lecture de nombreux petits fichiers ; XFS, quant à lui, est plus véloce avec de gros fichiers. Ext4, le système employé par défaut chez Debian, est un bon compromis, par ailleurs basé sur les trois précédentes versions du système de fichiers historiquement utilisé par Linux (ext, ext2, et ext3). Ext4 corrige certaines limitations de ext3 et est particulièrement adapté aux disques de très grande capacité. Une autre possibilité est d’expérimenter le très prometteur btrfs qui intègre de nombreuses fonctionnalités qui nécessitaient jusqu’à présent l’usage de LVM et/ou RAID.
Un système de fichiers journalisé (comme ext3, ext4, btrfs, reiserfs ou xfs) prend des dispositions particulières afin qu’en cas d’interruption brutale, il soit toujours possible de revenir dans un état cohérent sans être contraint à une analyse complète du disque (comme c’était le cas avec le système ext2). Cette fonctionnalité est obtenue en remplissant un journal décrivant les opérations à effectuer avant de les exécuter réellement. Si une opération est interrompue, il sera possible de la « rejouer » à partir du journal. Inversement, si une interruption a lieu en cours de mise à jour du journal, le dernier changement demandé est simplement ignoré : les données en cours d’écriture sont peut-être perdues, mais les données sur le disque n’ayant pas changé, elles sont restées cohérentes. Il s’agit ni plus ni moins d’un mécanisme transactionnel appliqué au système de fichiers.
Après le choix du type de partitionnement, le logiciel calcule une proposition, qu’il détaille à l’écran et que l’on peut au besoin modifier. On peut notamment choisir un autre système de fichiers si le choix standard (ext4) ne convient pas. Dans la plupart des cas, il suffit cependant d’accepter la proposition de partitionnement en validant l’option Terminer le partitionnement et appliquer les changements.
Figure 10. Valider le partitionnement
Le partitionnement manuel offre plus de souplesse et permet de choisir le rôle et la taille de chaque partition. Par ailleurs, ce mode est inévitable pour employer le RAID logiciel.
Le premier écran affiche les disques, les partitions qui les composent et tout éventuel espace libre non encore partitionné. On peut sélectionner chaque élément affiché ; une pression sur la touche Entrée donne alors une liste d’actions possibles.
On peut effacer toutes les partitions d’un disque en sélectionnant celui-ci.
En sélectionnant un espace libre d’un disque, on peut créer manuellement une nouvelle partition. Il est également possible d’y effectuer un partitionnement assisté, solution intéressante pour un disque contenant déjà un système d’exploitation mais que l’on souhaite partitionner pour Linux de manière standard.
B.A.-BA Point de montage
Le point de montage est le répertoire de l’arborescence qui abritera le contenu du système de fichiers de la partition sélectionnée. Ainsi, une partition montée sur
/home/
est traditionnellement prévue pour contenir les données des utilisateurs.Si ce répertoire se nomme «
/
», on parle alors de la racine de l’arborescence, donc de la partition qui va réellement accueillir le système Debian.
B.A.-BA* Mémoire virtuelle, swap
La mémoire virtuelle permet au noyau Linux en manque de mémoire vive (RAM) de libérer un peu de place en stockant sur la partition d’échange, donc sur le disque dur, une partie du contenu de la RAM restée inactive un certain temps.
Pour simuler la mémoire supplémentaire, Windows emploie un fichier d’échange contenu directement sur un système de fichiers. À l’inverse, Linux emploie une partition dédiée à cet usage, d’où le terme de « partition d’échange ».
En sélectionnant une partition, on peut indiquer la manière dont on va l’utiliser :
Certains types de RAID permettent de dupliquer les informations stockées sur des disques durs pour éviter toute perte de données en cas de problème matériel condamnant l’un d’entre eux. Le RAID de niveau 1 maintient une simple copie fidèle (miroir) d’un disque sur un autre, alors que le RAID de niveau 5 répartit sur plusieurs disques des informations redondantes qui permettront de reconstituer intégralement un disque défaillant.
Nous traiterons ici du RAID de niveau 1, le plus simple à mettre en œuvre. La première étape est de créer deux partitions de taille identique situées sur deux disques différents et de les étiqueter volume physique pour RAID.
Il faut ensuite choisir dans l’outil de partitionnement l’élément Configurer le RAID avec gestion logicielle pour transformer ces deux partitions en un nouveau disque virtuel et sélectionner Créer un périphérique multidisque dans cet écran de configuration. Suit alors une série de questions concernant ce nouveau périphérique. La première s’enquiert du niveau de RAID à employer — RAID1 dans notre cas. La deuxième demande le nombre de périphériques actifs — deux ici, soit le nombre de partitions à intégrer dans ce périphérique RAID logiciel. La troisième question concerne le nombre de périphériques de réserve — zéro ; on n’a prévu aucun disque supplémentaire pour prendre immédiatement la relève d’un éventuel disque défectueux. La dernière question demande de choisir les partitions retenues pour le périphérique RAID — soit les deux qu’on a prévues à cet usage (on veillera bien à ne sélectionner que des partitions mentionnant explicitement raid).
Au retour dans le menu principal, un nouveau disque virtuel RAID apparaît. Ce disque est présenté avec une unique partition qu’on ne peut pas supprimer mais que l’on peut affecter à l’usage de son choix (comme n’importe quelle autre partition).
LVM permet de créer des partitions « virtuelles » s’étendant sur plusieurs disques. L’intérêt est double : les tailles des partitions ne sont plus limitées par celles des disques individuels mais par leur volume cumulé et on peut à tout moment augmenter la taille d’une partition existante, en ajoutant au besoin un disque supplémentaire.
LVM emploie une terminologie particulière : une partition virtuelle est un « volume logique », lui-même compris dans un « groupe de volumes », ou association de plusieurs « volumes physiques ». Chacun de ces derniers correspond en fait à une partition « réelle » (ou à une partition RAID logicielle).
Cette technique fonctionne assez simplement : chaque volume, physique ou logique, est découpé en blocs de même taille, que LVM fait correspondre entre eux. L’ajout d’un nouveau disque entraîne la création d’un nouveau volume physique et ses nouveaux blocs pourront être associés à n’importe quel groupe de volumes. Toutes les partitions du groupe de volumes ainsi agrandi disposeront alors d’espace supplémentaire pour s’étendre.
L’outil de partitionnement configure LVM en plusieurs étapes. Il faut d’abord créer sur les disques existants des partitions qui seront les volumes physiques LVM. Pour activer LVM, on choisira Configurer le gestionnaire de volumes logiques (LVM), puis dans cet écran de configuration, Créer un groupe de volumes — auquel on associera les volumes physiques existants. Enfin, on pourra créer des volumes logiques au sein de ce groupe de volumes. On notera que le système de partitionnement automatique est capable de faire toute cette mise en place.
Dans le menu du partitionneur, chaque volume logique apparaît comme un disque avec une seule partition que l’on ne peut pas supprimer mais que l’on peut affecter à l’usage de son choix.
Pour garantir la confidentialité de vos données, par exemple en cas de perte ou de vol de votre ordinateur ou d’un disque dur, il est possible de chiffrer les données de partitions. Cette fonctionnalité peut se greffer très facilement en amont de n’importe quel système de fichiers puisque, comme pour LVM, Linux (et plus particulièrement le pilote dm-crypt
) utilise le Device Mapper pour créer une partition virtuelle (dont le contenu sera protégé) en s’appuyant sur une partition sous-jacente qui stockera les données sous une forme chiffrée (grâce à LUKS — Linux Unified Key Setup soit « Configuration de clés unifiée pour Linux » — un format standard permettant de stocker les données chiffrées mais aussi des méta-informations indiquant les algorithmes de chiffrement employés).
SÉCURITÉ Partition d’échange chiffrée
Lorsqu’une partition chiffrée est employée, la clé de chiffrement est stockée en mémoire vive. Obtenir cette clé permet également de déchiffrer les données. Il est donc vital de ne pas en laisser de copie accessible à l’éventuel voleur de l’ordinateur ou du disque, ou à un technicien de maintenance. C’est pourtant quelque chose qui peut facilement arriver avec un portable, puisque, lors d’une mise en veille prolongée, le contenu de la mémoire vive est stockée sur la partition d’échange. Si celle-ci n’est pas elle-même chiffrée, le voleur peut la récupérer et l’utiliser pour déchiffrer les données des partitions chiffrées. C’est pourquoi, lorsque vous employez des partitions chiffrées, il est impératif de chiffrer également la partition d’échange !
L’installateur Debian prévient l’utilisateur lorsqu’il essaye de créer une partition chiffrée et que la partition d’échange ne l’est pas.
Pour créer une partition chiffrée, il faut d’abord attribuer une partition disponible à cet usage. Pour cela, il convient de la sélectionner et d’indiquer qu’elle sera utilisée comme volume physique pour chiffrement. Ensuite, et après que le partitionnement du disque contenant ce volume physique a été effectué, vous devrez sélectionner Configurer les volumes chiffrés. Il sera alors proposé d’initialiser le volume physique avec des données aléatoires (rendant plus difficile la localisation des données réelles) puis de saisir une phrase secrète de chiffrement qu’il vous faudra saisir à chaque démarrage de votre ordinateur afin d’accéder au contenu de votre partition chiffrée. Une fois cette étape terminée et de retour au menu de l’outil de partitionnement, une nouvelle partition est disponible dans un volume chiffré et vous pouvez désormais la configurer comme n’importe quelle autre partition. Le plus souvent, cette partition sera utilisée comme volume physique pour LVM afin de pouvoir protéger plusieurs partitions (volumes logiques LVM) avec la même clé de chiffrement, dont notamment la partition d’échange.
Cette étape, qui ne demande pas d’interaction de la part de l’utilisateur, installe les paquets du « système de base » de Debian. Celui-ci comprend les outils dpkg
et apt
, qui gèrent les paquets Debian, ainsi que les utilitaires nécessaires pour démarrer le système et commencer à l’exploiter.
Figure 11. Installation du système de base
apt
)Pour que l’on puisse installer des logiciels supplémentaires, il est nécessaire de configurer APT, en lui indiquant où trouver les paquets Debian. Cette étape est aussi automatisée que possible. Elle commence par une question demandant s’il faut utiliser une source de paquets sur le réseau, ou s’il faut se contenter des seuls paquets présents sur le CD-Rom.
NOTE* CD-Rom Debian dans le lecteur
Si l’installateur détecte un disque d’installation Debian dans le lecteur de CD-Rom, il n’est pas toujours nécessaire de configurer APT pour aller chercher des paquets sur le réseau : il est automatiquement configuré pour lire les paquets depuis ce lecteur. Si le disque fait partie d’un jeu de plusieurs, il proposera cependant d’« explorer » d’autres disques afin de référencer tous les paquets qu’ils stockent.
S’il faut utiliser des paquets en provenance du réseau, les deux questions suivantes permettent de sélectionner un serveur sur lequel aller chercher ces paquets, en choisissant d’abord un pays, puis un miroir disponible dans ce pays (il s’agit d’un serveur public qui met à disposition une copie de tous les fichiers du serveur de Debian).
Figure 12. Choix d’un miroir Debian
Enfin, le programme propose de recourir à un mandataire (proxy) HTTP. En son absence, l’accès à Internet sera direct. Si l’on tape https://proxy.falcot.com:3128
, APT fera appel au proxy/cache de Falcot, un programme « Squid ». Il est possible de retrouver ces paramètres en consultant la configuration d’un navigateur web sur une autre machine connectée au même réseau.
Les fichiers Packages.gz
et Sources.gz
sont ensuite automatiquement téléchargés pour mettre à jour la liste des paquets reconnus par APT.
B.A.-BA Mandataire HTTP, proxy
Un mandataire (ou proxy) HTTP est un serveur effectuant une requête HTTP pour le compte des utilisateurs du réseau. Il permet parfois d’accélérer les téléchargements en gardant une copie des fichiers ayant transité par son biais (on parle alors de proxy/cache). Dans certains cas, c’est le seul moyen d’accéder à un serveur web externe ; il est alors indispensable de renseigner la question correspondante de l’installation pour que le programme puisse récupérer les paquets Debian par son intermédiaire.
Le système Debian contient un paquet popularity-contest, dont le but est de compiler des statistiques d’utilisation des paquets. Ce programme collecte chaque semaine des informations sur les paquets installés et ceux utilisés récemment et les envoie de manière anonyme aux serveurs du projet Debian. Le projet peut alors tirer parti de ces informations pour déterminer l’importance relative de chaque paquet, ce qui influe sur la priorité qui lui sera accordée. En particulier, les paquets les plus « populaires » se retrouveront sur le premier CD-Rom d’installation, ce qui en facilitera l’accès pour les utilisateurs ne souhaitant pas télécharger ou acheter le jeu complet.
Ce paquet n’est activé que sur demande, par respect pour la confidentialité des usages des utilisateurs.
L’étape suivante permet de choisir de manière très grossière le type d’utilisation de la machine ; les dix tâches présentées correspondent à des listes de paquets à installer. La liste des paquets réellement installés sera affinée et complétée par la suite, mais cette étape donne une bonne base très simplement.
Certains paquets sont par ailleurs automatiquement installés en fonction du matériel détecté (grâce au programme discover-pkginstall
du paquet discover). Ainsi, s’il détecte une machine virtuelle VirtualBox, il installera le paquet virtualbox-guest-dkms permettant une meilleure intégration de la machine virtuelle avec son système hôte.
Figure 13. Choix des tâches
Le chargeur d’amorçage est le premier programme démarré par le BIOS. Ce programme charge en mémoire le noyau Linux puis l’exécute. Souvent, il propose un menu permettant de choisir le noyau à charger et/ou le système d’exploitation à démarrer.
Le menu proposé par GRUB contient par défaut tous les noyaux Linux installés ainsi que tous les autres systèmes d’exploitation détectés. C’est pourquoi on acceptera la proposition de l’installer dans le Master Boot Record (MBR). Puisque garder les anciennes versions préserve la capacité à amorcer le système même si le dernier noyau installé est défectueux ou mal adapté au matériel, il est judicieux de conserver quelques anciennes versions de noyau.
GRUB est le chargeur d’amorçage installé en standard par Debian, en raison de sa supériorité technique : il traite la plupart des systèmes de fichiers et n’a donc pas besoin d’être mis à jour à chaque installation d’un nouveau noyau car, lors de l’amorçage, il lit sa configuration et retrouve la position exacte du nouveau noyau. Sa version 1 (désormais connue sous le nom « Grub Legacy ») ne gérait pas toutes les combinaisons de LVM et de RAID logiciel ; la version 2, installée par défaut, est plus complète. Il peut rester des situations où il faut recommander LILO (autre chargeur d’amorçage) ; l’installateur le proposera automatiquement.
ATTENTION Chargeurs d’amorçage et architectures
LILO et GRUB, mentionnés dans ce chapitre, sont des chargeurs d’amorçage pour les architectures i386 et amd64. Si vous installez Debian sur une autre architecture, c’est un autre chargeur qui sera employé. Citons entre autres
yaboot
ouquik
pour powerpc,silo
pour sparc,aboot
pour alpha,arcboot
pour mips.
L’installation étant maintenant terminée, le programme vous invite à sortir le CD-Rom de son lecteur, puis à redémarrer le PC.
Mise à jour du système.
# apt-get update && apt-get -y upgrade
Le domaine des bureaux graphiques connaît deux grandes familles de logiciels : GNOME et KDE, tous deux très populaires. C’est un phénomène que l’on ne retrouve pas dans tous les domaines du logiciel libre ; les concurrents d’Apache ne sont ainsi que des serveurs web marginaux.
Cette diversité a une origine historique, KDE fut le premier projet de bureau graphique mais son choix de la bibliothèque graphique Qt ne convenait pas à tous. À l’époque, Qt n’était pas encore un logiciel libre et GNOME a rapidement démarré en optant pour la bibliothèque graphique GTK+. Depuis, les projets évoluent en parallèle. Qt est depuis devenu libre, mais ces deux projets n’ont pas fusionné.
Ils collaborent cependant : par l’intermédiaire de FreeDesktop.org, ils ont défini des normes favorisant l’interopérabilité entre les différentes applications.
Nous ne nous aventurerons pas à répondre à l’épineuse question du choix du bureau graphique : ce chapitre passe rapidement en revue les différentes possibilités et fournit des éléments de réflexion sur le sujet. Il est toujours préférable d’essayer les différentes possibilités avant d’en adopter une.
Debian Jessie contient la version 3.14 de GNOME, qui s’installe simplement par la commande apt-get install gnome
(et qui est automatiquement installée par la tâche Environnement graphique de bureau).
GNOME est intéressant de par ses efforts dans le domaine de l’ergonomie et de l’accessibilité. Des professionnels du design ont en effet rédigé des normes pour aider les développeurs à créer des interfaces graphiques satisfaisantes. Le projet est en outre encouragé par de grands acteurs de l’informatique comme Intel, IBM, Oracle, Novell, sans oublier des distributions Linux. Enfin, un grand nombre de langages de programmation sont exploitables pour développer des applications s’intégrant à GNOME.
Figure 13.1. Le bureau GNOME
Pour les administrateurs, GNOME semble être mieux préparé à des déploiements massifs. La configuration des applications est gérée par l’interface GSettings et stockée dans la base de données DConf. De cette manière, les réglages de configuration peuvent être interrogés et modifiés par les utilitaires en ligne de commande gsettings
et dconf
, ou par l’interface graphique dconf-editor
. L’administrateur peut donc modifier la configuration des utilisateurs par un simple script. Le site web suivant regroupe toutes les informations qui peuvent intéresser un administrateur en charge de stations employant GNOME :
→ https://help.gnome.org/admin/
La version 4.14 de KDE, intégrée à Debian Jessie, s’installe facilement avec la commande apt-get install kde-standard
.
KDE a évolué rapidement en suivant une approche très pragmatique ; ses auteurs ont très vite obtenu d’excellents résultats, ce qui leur a permis de mettre en place une importante base d’utilisateurs… contribuant elle-même à la qualité du projet. Globalement, KDE est un bureau graphique parfaitement mûr, disposant d’une très large palette d’applications.
Figure 13.2. Le bureau KDE
Depuis la publication de Qt 4.0, le dernier problème de licence concernant KDE est résolu. Cette dernière est en effet soumise à la licence GPL, aussi bien sous Linux que sous Windows (alors qu’auparavant, la version Windows disposait d’une licence spécifique qui n’était pas libre). Notons enfin que le langage C++ est obligatoire pour développer une application KDE.
Xfce est un bureau graphique simple et allégé qui convient parfaitement aux ordinateurs limités en ressources. Il s’installe avec la commande apt-get install xfce4
. Il s’appuie — comme GNOME — sur la bibliothèque graphique GTK+ et de nombreux composants sont communs avec ce dernier.
Contrairement à GNOME et KDE, Xfce n’est pas un projet très vaste. Outre les composants de base d’un bureau moderne (gestionnaire de fichiers, gestionnaire de fenêtres, gestionnaire de sessions, panneau démarreur d’applications, etc.), il ne fournit que quelques applications : un terminal, un calendrier (Orage), un visionneur d’images, un graveur de CD-Rom/DVD-Rom, un lecteur de fichiers multimédia (Parole), un contrôleur de volume (pour le son) et un éditeur de texte (Mousepad).
Figure 13.3. Le bureau Xfce
Un autre bureau graphique fourni dans Jessie est LXDE, sa caractéristique principale est sa « légèreté ». Il peut être installé avec l’aide du métapaquet lxde.
]]>Voici une première approche de la ligne de commande du Shell Linux. On apprendra ici à manipuler les commandes du système et des alias des commandes.
$
pour un utilisateur standard ou un #
pour l’administrateur du système (désigné root), indique que le shell attend les commandes de l’utilisateur.Shell =
En informatique, le shell est le moyen le plus simple d’interagir avec le système d’exploitation. Sur Microsoft Windows, selon les versions, le shell est appelé par les commandes CMD.EXE
ou COMMAND.COM
, sans oublier powershell.exe
. Sur Linux ou Unix, il existe une grande variété de shells comme sh
, bash
, ksh
, etc. Un shell accepte des commandes frappées à partir d’une invite de commandes (l’entrée standard) et les exécute, généralement en temps réel; l’affichage des résultats est rendu en général sur un écran (la sortie standard).
On obtient la liste des shells présents sur le système en affichant le fichier /etc/shells
:
cat /etc/shells
sh
: Bourn Shell, historique, standard, “portable”csh
/tcsh : C Shellksh
: Korn Shellbash
: Bourn Again Shell Linux, le plus utiliséLe projet GNU offre des outils pour l’administration de système de type UNIX qui sont libres et qui respectent les standards UNIX.
Bash est un Shell compatible avec sh qui incorpore des spécificités utiles du Korn Shell (ksh) et du C Shell (csh). Il est censé se conformer à la norme IEEE POSIX P1003.2/ISO 9945.2 Standards des Shell et Outils. Il offre des améliorations fonctionnelles par rapport à sh pour la programmation et l’utilisation interactive.
Quand on obtient un terminal avec une ligne de commande, on se situe dans un environnement encadré par un programme “shell” qui a créé un processus sur le système. Il permet notamment d’exécuter des commandes.
ECHO(1) Manuel de l'utilisateur Linux ECHO(1)
NOM
echo - Afficher une ligne de texte
SYNOPSIS
echo [-neE] [message ...]
echo {--help,--version}
DESCRIPTION
Cette page de manuel documente la version GNU de echo.
La plupart des shells ont une commande intégrée ayant le même nom et
les mêmes fonctionnalités.
echo écrit chaque message sur la sortie standard, avec une espace entre
chacun d'eux, et un saut de ligne après le dernier.
La commande echo
permet d’afficher du texte à l’écran :
[francois@c7li ~]$ echo "affiche ce texte"
affiche ce texte
[francois@c7li ~]$
[francois@c7li ~]$
On remarque le “prompt”, “l’invite de commande” composée de :
francois
l’utilisateur connecté@
séparateurc7li
nom de l’ordinateur~
“titld” qui indique le dossier utilisateur comme dossier courant$
qui indique le type de connexionCette configuration de l’environnement est chargée sous forme de script au moment de la connexion de l’utilisateur.
ls
LS(1) Manuel de l'utilisateur Linux LS(1)
NOM
ls, dir, vdir - Afficher le contenu d'un répertoire
SYNOPSIS
ls [options] [fichier...]
dir [fichier...]
vdir [fichier...]
Options POSIX : [-CFRacdilqrtu1] [--]
Options GNU (forme courte) : [-1abcdfgiklmnopqrstuvwxABCDFGHLNQRSUX]
[-w cols] [-T cols] [-I motif] [--full-time] [--show-control-chars]
[--block-size=taille] [--format={long,verbose,commas,across,verti‐
cal,single-column}] [--sort={none,time,size,extension}]
[--time={atime,access,use,ctime,status}] [--color[={none,auto,always}]]
[--help] [--version] [--]
DESCRIPTION
La commande ls affiche tout d'abord l'ensemble de ses arguments
fichiers autres que des répertoires. Puis ls affiche l'ensemble des
fichiers contenus dans chaque répertoire indiqué. Si aucun argument
autre qu'une option n'est fourni, l'argument « . » (répertoire en
cours) est pris par défaut.
Pour entrer des commandes dans le shell, il faut :
suivie éventuellement d’une ou plusieurs options notées
-
” en notation abrégée ou un double “dash”, double tiret, “--
” en notation extensive,Chaque commande dispose de sa propre syntaxe :
Sans options :
ls
Avec une option :
ls -l
Avec plusieurs options :
ls -l -a -h -t
ls -laht
Options “double dash” :
ls --all
ls --help
Donner un argument :
ls -l /home
Donner plusieurs arguments :
ls -l /home /var
A titre d’exemple la commande “ls
” s’exécute car elle est située dans un des chemins indiqués dans la variable d’environnment PATH. On peut afficher ces chemins par défaut pour les fichiers exécutables via cette commande :
echo $PATH
peut afficher ce résultat :
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
On peut exécuter le logiciel directement à partir de l’emplacement absolu :
/bin/ls
On peut exécuter le logiciel directement à partir de l’emplacement relatif :
cd /bin
./ls -l ls
On peut entrer des commandes sur plusieurs lignes :
ls /var
ls /home
ls /usr
Ou on peut entrer des commandes sur une seule ligne on peut séparer les commandes par un “semicolon”, point-virgule, “;
” :
ls /var; ls /home; ls /usr
Si les arguments diffèrent pour une même commande, on peut créer une boucle et profiter de variables :
for arg in /home /var /usr
do
echo "visualisation : " $arg
ls -a $arg
done
Ou encore en une seule ligne
for arg in /home /usr /var; do ls -la $arg; done
Mais cela était inutile :
ls /home /var /usr
La variable spéciale $?
contient le code de retour d’exécution de la commande précédente.
Une commande qui s’exécute avec succès rend un retour valorisé à 0
.
Par exemple la commande true
rend toujours ce code de retour :
true ; echo $?
Une commande qui s’échoue rend un retour valorisé à 1
.
Par exemple la commande false
rend toujours ce code de retour :
false ; echo $?
&&
et ||
sont des séparateurs de commandes conditionnels.
&&
Voyez-vous même :
true && echo la commande précédente a réussi
Ecrit le message “la commande précédente a réussi” si la première commande est exécutée sans erreur.
Par exemple sous Debian/Ubuntu :
sudo apt-get update && sudo apt-get -y upgrade
Par exemple sous Centos :
sudo yum -y install epel-release && sudo yum repolist
||
Voyez-vous même :
false || echo la commande précédente a échoué
commande1 || commande2
Ecrit le message “la commande précédente a échoué” si la première commande a échoué.
Par exemple :
sudo apt-get update || sudo yum -y update
Pour voir la liste des commandes que vous avez validées, vous pouvez utiliser la commande interne de bash history
:
history
La commande history
liste les commandes en cache ainsi que celles sauvées dans ~/.bash_history
. Lorsque l’utilisateur quitte le shell, les commandes en cache sont inscrites dans ce fichier.
Vous pouvez récupérer les commandes tapées en utilisant les flèches directionnelles (haut et bas) de votre clavier.
La commande history -c
efface l’historique de la session courante.
Vous pouvez également utiliser des raccourcis emacs qui vous permettent d’exécuter et même de modifier ces lignes.
Par exemple Ctrl-p
/Ctrl-n
pour ligne précédente/ligne suivante ou Ctrl-a
/ Ctrl-e
pour début/fin de ligne.
Pour en savoir plus sur Emacs : https://www.tuteurs.ens.fr/unix/editeurs/emacs.html
Les raccourcis bang reprennent les commandes précédentes, par exemple :
ls -a
^ls^ps
!!
history
!2
Selon la distribution la touche de tabulation offre des possibilités d’auto-complétion.
L’auto-complétion de certains binaires non natifs demandent l’installation et la configuration de scripts ou paquets supplémentaires.
La commande uname
permet de connaître la version du noyau courant. Comment la substituer dans une variable ?
uname -a
Linux c7li 3.10.0-327.4.5.el7.x86_64 #1 SMP Mon Jan 25 22:07:14 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Mise en variable de la sortie de la commande de deux manières :
system=$(uname -a)
ou
system=`uname -a`
Vérification.
echo $system
Linux c7li 3.10.0-327.4.5.el7.x86_64 #1 SMP Mon Jan 25 22:07:14 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Un alias est une autre manière de substituer des commandes.
Pour obtenir la liste des alias :
alias
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
Créer un alias :
alias zozo="ls -a"
alias
zozo
Les alias se chargent dans le profil de connexion de l’utilisateur.
]]>Les filtres sur les fichiers (globbing) permettent de les sélectionner de manière intelligente. En voici les principes.
<
), de sortie (>
) et le tube (|
) sont également des caractères spéciaux ainsi que le dollar ($
) utilisé pour les variables. Notez que ces caractères sont rarement utilisés pour nommer des fichiers standards.Le caractère *
remplace n’importe quel nombre de caractères :
ls /usr/bin/b*
Liste tous les programmes commençant par “b”.
Le caractère ?
remplace n’importe quel caractère unique :
ls /usr/bin/?b*
Liste tous les programmes ayant un “b” pour seconde lettre.
[ ]
[ ]
est utilisé pour définir une plage de valeurs :
ls /usr/bin/linux[0-9][0-9]
liste tous les fichiers commençant par “linux” suivis de deux chiffres.
ls /usr/bin/[!Aa-Yy]*
liste tous les fichiers qui ne commencent pas par un “a” ni par un “A” jusqu’à “y”/”Y”.
{chaîne1,chaîne2}
{chaîne1,chaîne2}
même si ce n’est pas simplement un joker de nom de fichiers, on peut l’utiliser pour filtrer des noms de fichiers :
ls index.{htm,html}
Voici un premier script shell qui vise à démontrer simplement l’environnement programmable du shell Linux.
Un bon éditeur de texte est indispensable.
On pourra changer l’éditeur par défaut sous Debian/Ubuntu avec la commande :
sudo update-alternatives --config editor
vi/vim
: vimtutor
, le tutoriel embarqué de vim
est conseillé.
:set nu
gg
G
25G
ou :25
i
:q!
:w
:x
ou Shift ZZ
nano
: “notepad like” devenu très populaire que l’on détaille pas ici.
mcedit
: “norton commander like” est très utile pour débuter.emacs
: https://fr.wikipedia.org/wiki/EmacsCréez un premier script nommé monscript.sh
avec nano
ou vi
:
echo "ceci est un mon premier script"
Invoquez ce script monscript.sh
avec sh :
sh monscript.sh
Renommez monscript.sh
en monscript
:
mv monscript.sh monscript
Ajoutez une commande à monscript
:
echo "echo `ceci est ma seconde ligne`" >> monscript
Invoquez ce script monscript
avec sh
, l’extension qui dénomme le script n’a aucune portée pour le shell :
sh monscript
Objectif : le script devrait rester accessible directement dans la ligne de commande :
Par exemple, en plaçant le script dans un chemin du PATH :
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
et dans
~/bin
En modifiant la variable PATH en ajoutant l’endroit du fichier soit l’emplacement local courant. Avec cette méthode, tout script à exécuter à partir l’endroit courant peut être appelé.
$PATH:.
Appel depuis son emplacement original :
./monscript.sh
Il aussi nécessaire que le fichier soit exécutable :
chmod u+x monscript.sh
NOTE
Le Shebang indique au système l’interpréteur à utiliser pour lancer les commandes : #!/bin/sh
ou #!/bin/bash
. Si l’interpréteur de commandes n’est pas déclaré, le shell courant prend en charge les commandes du script.
Effacer le contenu de la variable PATH :
PATH=
Quel est l’effet produit ? Comment y remédier ?
Quelle est l’utilité d’ajouter le répertoire courant .
(point) à la fin de votre variable PATH de cette manière :
PATH=$PATH:.
env
Afficher la date dans la langue courante :
echo $LANG
date
peut afficher ce résultat :
fr_BE.UTF-8
dim fév 21 06:05:03 CET 2016
Afficher la date dans une autre langue, ici avec la locale en_US.UTF-8
:
LANG=en_US.UTF-8
date
affiche ce résultat :
Sun Feb 21 06:05:28 CET 2016