Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierLinux French

Gérez, protégez et partagez vos mots de passe avec KeepPassXC

Par : LinuxFrench
18 janvier 2020 à 21:42
    Nous stockons de nombreuses informations, pour beaucoup sensibles, et 
    dans des formats différents. Cela fait autant de mots de passes à créer,
    à retenir et à utiliser. À utiliser. À utiliser pour souvent 
    quotidiennement, il faut donc leur utilisation soit la plus transparente 
    possible soit la plus transparente possible et s'adapte aux différents 
    services cleints : données sur une partition chiffrée, site internet, 
    client d'une application bancaire. Application en ligne de commandes. 
    Vous utilisez peut être déjà une extension Web pour les sites Web : 
    c'est bien, mais cela ne gére pas une société tierce sur leurs serveurs 
    lorsque vous rentrez dans l'extension. Dans cet article, nous allons 
    découvrir KeepassXC, un gestionaire de mots de passe libre qui vous 
    permettra de répondre à tous types de besoins et de ne pas partager 
    vos mots de passe avec une société tierce.

    Benoît Benedetti

    Introduction :

    À l’origine, il y avait Keepass, un très bon gestionnaire de mot de passe libre, seulement disponible sur Windows. Puis est arrivé KeepassXC (avec X comme croix, cross en anglais pour cross-platform/multiplateforme), un fork de Keepass pour le porter sur plusieurs plateformes et ajouter de nouvelles fonctionnalités. Malheuresement, le développement de KeePassX a commencé à s’éssouffler et s’est carrément arrêté en 2016. Des dééveloppeurs ont crée un nouveau projet plus dynamique : KeepassXC est né. Bien que KeePass n’ait pas ralenti son développement, KeePassXC reste la meilleure alternative des gestionnaires de mot de passe. Il est libre, a une communauté active, est plus simple à utiliser, et a pus de fonctionnalités :

    • multiplateforme Linux, MacOS et Windows
    • compatible avec KeePass, KeePassXC, MacPass
    • chiffrement de la base de données en AEs 256 bits
    • auto-remplissage des formulaires de connexion
    • client en ligne de commandes
    • intégration avec les navigateurs Web
    • import / export des mots de passes
    • générateur de mot de passe et de passphrases
    • partage et fusion de bases de mot de passe
    • https://keepass.info/help/base/index.html

    Installation

    KeePassXC est disponible sur toutes les distributions Linux, généralement la version 2.4.3, largement récente pour profiter de ses fonctionnalités, que vous pouvez installer simplement sous Debian et dérivées avec la commande :

    $ sudo apt install keepassxc

    La dernière version stable de KeePassXC est là 2.5.0 sortie en automne 2019. C’est elle que j’utiliserai dans cet article. Pour installer simplement, vous pouvez la récupérer au format AppImage depuis le site officiel. AppImage est un exécutable portable qui peut-être lancé tel quel sur n’importe quelle distribution Linux récente. On commence par récupérer KeePassXC au format AppImage et lancer l’application avec la commande ci-dessous :

    $ sudo wget https://github.com/keepassxreboot/keepassxc/releases/download/2.5.0/KeePassXC-2.5.0-86_64.AppImage -O /usr/local/bin/keepassxc
    $ sudo chmod a+x /usr/local/bin/keepassxc
    $ sudo keepassxc &

    On va créer un lanceur pour intégrer cette AppImage au bureau Gnom, afin de ne pas à avoir à passer par la ligne de commande pour utiliser KeePassXC.
    Créez le fichier suivant :

    $ nano ~/.local/share/application/appimagekit-keepass.desktop
    [Desktop Entry]
    Name=KeePassXC AppImage
    GenericName=Password Manager
    GenericName[fr]=Gestionnaire de mot de passe
    Comment=Community-driven port of the Windows application "KeePass Password Safe"
    Exec=keepassxc %f
    TryExec=Keepassxc
    StartupWMClass==keepassxc
    Terminal=false
    Type=application
    Version=1.0
    Categories=Utility;Security;Qt;

    Vous pouvez désormais lancer la version 2.5.0 de KeePassxc au format AppImage comme n’importe quelle application graphique de bureau depuis votre lanceur d’application GNOME.

    Démarrage et initialisation d’une base de mots de passe

    Comme on peut le voir au lancement de l’application, celle-ci nous propose soit d’importer vos mots de passe depuis une autre applications ou d’ouvrir une base de données existante.Étant donné que nous partons de zéro, nous allons cliquer sur le bouton pour créer une nouvelle base de données dans laquelle stocker nos mots de passe. Un assistant de création vous demande d’abord de donner un nom à cette base : vous pouvez très bien créer une seule base qui va contenir tous vos mots de passe, ou bien créer plusieurs bases pour éviter de mélanger vos mots de passe personnels et professionnels, choisissez donc un nom pertinent pour votre base. Puis un autre écran vous demande les paramètres de chiffrement, vous pouvez tout à fait laisserceux par défaut. Ensuite, il faut protéger votre base avec au minimum un mot de passe à retenir, demandé lors de l’ouverture de la base, ne perdez donc pas ce mot de passe. En cliquant sur « Ajouter une protection supplémentaire .. » vous pourrez protéger votre base avec un keyfile (un fichier nécessaire pour ouvrir la base en plus du mot de passe maître, à ne pas perdre) et/ou avec une clé Yubikey. Enfin, choisissez un emplacement pour stocker votre base : je la stocke dans mon dossier Nextcloud, synchronisé entre mes différentes machines, car pour avoir avoir un code plus simple et ne pas forcer leurs utilisateurs avec une solution de synchronisation maison, les développeurs de KeePassXC ne proposent pas de mécanismes de synchronisation. J’ai aussi stocké le fichier dans un dossier caché au nom peut évocateurt « misc » , fichier de base de données qui est lui même un fichier caché nommé « perso » : ce n’est pas ça qui arrêtera quelqu’un qui veut vraiment pirater mes données, mais ce n’est pas plus cher et ça ne mange pas de pain, alors autant le faire.

    Voilà, votre base est créee, vous revenez à l’interface de KeePassXC, cette base de données ouverte et déverrouillée, vide, mais prête à être utilisée. De là vous pouvez fermer la base, en créer ou en ouvrir une autre. Désormais, si vous fermez KeePassXC, la fenêtre de lancement va être différente, il vous sera proposé par défaut d’ouvrir la dernière base utilisée, à déverrouiller à l’aide de son mot de passe maître.

    Ajouter une entrée identifiant / Mot de passe dans votre base

    Maintenant que nous avons une base, ajoutons-y des mots de passe. Pour cela, on crée depuis l’interface de KeePassXC une entrée. Une entrée est une entité qui contient toutes les informations d’accès à un service : un site web, une application, un réseau (VPN, WIFI, …) un ordinateur, ect. Ces informations sont un nom, titre, un identifiant de connexion, un mot de passe,l’adresse du site, ect

    Pour créer une entrée, cliquez sur l’icône sous forme de clé, ou depuis le menu « Entrée », sélectionnez « Nouvelle Entrée », la page d’édition d’une entrée apparaît. Rentrez les informations dont vous avez besoin puis enregistrer votre entrée. Vous pouvez bien sûr modifier l’entrée au besoin. Il y a même un menu pour ajouter des informations supplémentaires (attributs, fichier joints), ou encore la configuration de la saisie automatique que nous verrons plus loin. Voilà, c’est tout ce qu’il faut savoir pour créer une Entrée.

    Parce que vous allez surement stockée plusieurs mots de passe, KeePassXC propose de regrouper vos entrées dans des groupes : vous créez un groupe, symbolisé par un dossier dans l’interface, suivant un thème pour contenir les mots de passe de ce même thème. Vous pouvez même créer des sous-groupes pour organiser au mieux vos Entrées.

    Utiliser une entrée de votre base pour s’authentifier

    Il existe plusieurs façon natives d’utiliser une entrée de votre base de données. La première, la plus simple, est la méthode que j’appelerai « manuelle » : depuis l’écran qui liste les Entrées de votre base, sélectionnez l’entrée que vous voulez utilisez, un clic-droit, ou depuis l’application, copiez le nom d’utilisateur de l’Entrée, puis copiez le mot de passe, et utilisez-les sur le service, site web, application dont vous avez besoin.

    Cette méthode mérite d’être efficace, mais KeePassXC vous permet plus simple avec la saisie automatique. Pour cela, retournez sur la page d’édition de votre Entrée, et sélectionnez le menu à gauche « Saisie automatique » et sélectionnez « Utiliser une séquence personnalisée ».

    Le premier champ de configuration indique les séquences clavier automatiques qui seront tapés par KeePassXC à votre place dans le formulaire d’authentification pour lequel vous avez besoin de l’Entrée. Par défaut, c’est (USERNAME)[TAB](PASSWORD)[ENTER] : KeePassXC va remplir le premier champ du formulaire avec l’attribut USERNAME (identifiant) de l’entrée, puis taper [TAB] pour passer au deuxièmne champ PASSWORD de l’Entrée puis tapé [Entrée]. C’est parfait, c’est exactement l’enchaînement de Framasite (et la grande majorité des sites web). Ensuite, il reste encore à indiquer à KeePassXC dans laquelle fenêtre taper cet enchaînement clavier, c’est à dire configurer l’association de fenêtres pour l’Entrée. C’est très simple, il vous suffit d’ouvrir le service utilisé par l’Entrée (ici, la page du site de Framasite dans votre navigateur). Puis revenez dans la page de configuration KeePassXC de la saisie automatique de l’Entrée concernée, et cliquez sur le bouton en forme de signe plus en bas de l’interface pour configurer l’association de fenêtre. Dans le menu déroulant qui apparaît à droite, sélectionnez la fenêtre qui correspond à l’application dans laquelle vous souhaitez utiliser cette Entrée, puis appuyez sur OK pour finaliser la configuration . Vous pouvez maintenant utiliser cette Entrée en saisie automatique : commencez par ouvrir l’application (ici le site web de Framasite) et à placer le curseur dans le premier champ à remplir, le champ de l’identifiant utilisateur. Puis, ouvrez KeePassXC et séléctionnez votre Entrée, puis depuis le menu contextuel choissisez « Effectuez une saisie automatique » (ou depuis la barre d’outils, ou mieux, avec le raccourci ([Crtl + Maj + V]). KeePassXC va remplir automatiquement. Pour vous les champs du formulaire de connexion, vous voilà identifié sur Framasite.
    Mais on peut encore simplifier et automatiser la saisie automatique en éliminant le besoin d’aller dans l’interface de KeePassXC pour utiliser la saisie automatique, et la lancer directement depuis le site web à l’aide d’un raccourci global.
    Pour créer ce raccourci, ouvrez « Outils » > « Préférences » depuis l’interface, dans le premier menu « Général », séléctionnez le deuxième onglet « Saisie automatique » et tapez le raccourci qui vous convient dans le champ « Raccourci de la saisieautomatique ». Il faut littéralement taper la combinaison de touches du raccourci désiré. Une fois fait, il vous suffira simplement d’aller sur l’application, le site, ect, qui vous intéresse. Tapez le raccourci configuré, une fenêtre pop-up apparaît vous affichant l’Entrée qui correspond pour KeePassXC à la fenêtre active ; double-cliquez l’Entrée (ou appuyez sur [Entrée] et la saisie automatique va remplir les champs du formulaire. Depuis cette pop-up, vous pouvez aussi faire un clic droit pour copier manuellement le login et/ou le mot de passe, ou vous pouvez faire une recherche parmi vos Entrées si KeePassXC ne vous a pas proposé l’Entrée qui convenait.

    Utiliser l’extension WEB pour saisir une entrée de manière automatique

    Avec la saisie automatique et son raccourci, vous avez déjà de quoi pouvoir utiliser vos informations de connexion, pas de manière complétement transparante, mais au moins d’une manière simplifiée. Mais sachez que KeePassXC possède une intégration avec les navigateurs les plus connus, pour vous faciliter la vie lors de la connexion à vos sites préférés : Firefox, Chrome, Chromium, Vivaldi, et même Brave sont supportés. Ainsi, vous n’aurez même plus à utiliser de raccourci : une fois l’extension pour votre navigateur installé, celle-ci remplit automatiquement les formulaires sur les sites pour lesquelles vous avez crée une entrée. Pour cela, il faut activer cette intégration, car elle n’est pas activée par défaut dans KeePassXC : cliquez sur « Paramètres », et cliquez ensuite « Intégration aux navigateurs ». Cochez « Activer l’intégration au navigateur », et cochez ensuite le ou les navigateurs qui vous intéressent.

    Ouvrez ensuite votre navigateur, et installez l’extension KeePassXC. Puis allez dans les paramètres de l’extension, et, KeePassXC ouvert et la base de mots de passe dévérouillé, associez cette base afin que l’extension soit autorisée à y accéder. À partir de ce moment, lorsque vous ouvrirez une URL dans votre navigateur qui correspond à une entrée KeePassXC va afficher l’Entrée correspondante et demandez si on veux autoriser l’accès depuis l’extension. Une fois l’accès autorisé, une icône KeePassXC apparaît dans le formulaire de connexion.

    Voilà, vous avez désormais une base fr mots de passe liée à votre navigateur, de manière transparente, comme beaucoup de solutions existantes, la différence est que vos mots de passe sont hébergés. Et l’intégration KeePassXC avec votre navigateur via l’extension peut en plus être configurée de manière plus avancée si vous en avez besoin.

    Protéger l’utilisation d’un agent SSH avec KeePassXC

    Les clés SSH sont très utilisées pour vous connecter à un serveur sans avoir à taper identifiant et mot de passe d’accès au serveur. Dans l’idéal, on les protège par une passphrase pour éviter de se faire voler et que quelqu’un puisse les utiliser à votre place. Pour gagner du temps et par fainéantise, un logiciel appelé « ssh-agent » charge une clé et vous permet de l’utiliser sans avoir à retaper la passphrase. L’utilisation de « ssh-agent » est donc sensible, et KeePassXC vous permet de la protéger : vous configurez vos clés SSH dans KeePassXC, et vous liez KeePassXC à « ssh-agent« . Si la base de mots de passe KeePassXC n’est pas ouverte et déverrouillée, « ssh-agent » ne peut pas utiliser de clé.

    Commençons par créer une clé SSH protégée par une passphrase, afin de servir d’exemple :

    Dans l’interface de KeePassXC, allez dans « Paramètres » > « Agent SSH » et activez l’agent SSH. Puis créez une Entrée pour notre clé avec la passphrase comme mot de passe. Dans la page d’édition de l’Entrée, sélectionnez le menu Agent SSH : cochez les trois premières cases pour gérer la clé dans l’Agent SSH via KeePassXC. Puis indiquez son chemin dans le champ « Fichier externe ». Si le chemin et le mot de passe sont bons, le champ Clé Publique sera rempli automatiquement. Désormais au déverrouillage de la base KeePassXC, la clé sera ajoutée automatiquement à l’agent SSH.

    Accéder en ligne de commandes à votre base de mot de passe

    Vous pouvez également intéragir en ligne de commande avec KeePassXC et gérer vos bases et entrées depuis le terminal. Cet outil « keepassxc-cli » est livré avec KeePassXC. Si vous avez installé KeePassXC depuis le dépôts, il devrait déjà être disponible :

    $ keepassxc-cli version
    2.5.0
    

    Si vous avez récupéré KeePassXC au format AppImage, le paquet AppImage contient lui aussi l’exécutable en ligne de commandes, il faut passer la commande « cli » en paramètre de l’appel à l’exécutable au format AppImage :

    $ ./KeePassXC-2.5.0-86_64 --version
    2.5.0

    Dans notre cas, nous avons ajouté l’AppImage dans un dossier PATH, et nous l’avons renommé. Un simple appel comme suit suffit :

    $ keepassxc cli --version

    L’outil propose deux mondes : le mode commande classique, et le monde interactif. Dans le monde interactif, vous vous connectez à une base, puis vous rentrez dans une sorte de Shell KeePassXC, qui permet de se déplacer dans une base de donnée et ses Entrées, tel un système de fichier en ligne de commandes. Pour rentrer dans ce mode interactif, on utilise la commande « open » avec la base en paramètre :

    Si vous voulez utiliser l’outil en mode non interactif, il suffit de passer en paramètre la commande désirée (tout sauf open), les options de la commande, suivis du nom de base, et enfin les paramètres éventuels de la commande. Voilà comment par exemple afficher la même Entrée que nous avons affichée en mode interactif.
    Pour connaître la syntaxe, les options et les paramètres d’une commande, on l’exécute en la faisant suivre de l’option –help

    La majorité des opérations accessibles dans le client de bureau sont possibles depuis l’outil en ligne de commandes : ajout d’une base, modification d’une Entrée, import/export des données. Cet outil est donc parfait pour ajouter des entrées, maintenir et sauvegarder une base, importer ou exporter en masse vos données.

    Conclusion

    KeePassXC possède toutes les fonctionnalités pour devenir votre gestionnaire de mots de passes. Si vous n’en utilisez pas pour l’instant, il est temps de vous y mettre avec KeePassXC. Si vous utilisez déjà un gestionnaire de mots de passe propriétaire, j’espère vous voir démontré de migrer vers KeePassXC, une alternative auto-hebergée. Vous pouvez également partager tout ou une partie d’une base avec d’autre personne et il existe une application mobile non officielle pour emporter vos mots de passe partout avec vous. Même s’il ne propose pas (encore) un système de plugins comme KeePass, KeePassXC a pour moi largement dépassé son arrière parent, ce qui en fait la solution la plus sérieuse de gestionnaire de mots de passe, et pas que dans le monde du libre.

    Références

    [1] https://keepassxc.org/download
    

    Remerciement

    Un grand merci à Linux Pratique et à Benoît Benedetti.

    Numworks – La calculatrice du Linuxien ?

    Par : LinuxFrench
    7 avril 2018 à 22:41

    Numworks est une calculatrice graphique disponible depuis septembre 2017 et développée par par l’entreprise française Éponyme. Epsilon est son système d’exploitation Open Source qui tente de se faire une place face à un duopole établi depuis plusieurs années, cela pourrait éventuellement vous rappeler quelque chose, non ? Nous pourrions en effet, être tenté de penser qu’Epsilon est à Casio/Texas Instruments ce que GNU/Linux est à Windows/MacOS.
    Cette comparaison est-elle pertinente ? À qui Numworks s’adresse t-elle ? Linuxiens, Libristes, Développeurs, Lycéens ?
    1 sCorNNnx2vf7spvpDcsT-Q

    1. Présentation

    L’idée de Numworks est de proposer une calculatrice moderne là où la concurrence proposerait des calculatrices basées sur des briques technologiques développées dans les années 90. Un écran LCD couleur, de 7.1 cm avec une résolution de 320×240 pixels, qu’on aura inutilement tendance à caresser les premières fois, car les écrans tactiles ont envahi nos quotidiens.

    Au premier démarrage, la calculatrice affiche un menu détaillant la procédure à suivre pour la mettre à jour. Les applications disponibles sont plus ou moins les grands classiques des calculatrices : Calculs, Fonction, Suites, Statistiques, Probabilités, Régressions. À celle-ci s’ajoute la programmation une fois la mise à jour faite.

    Numworks est évidemment conforme à la nouvelle législation qui oblige, à partir de la session 2018 du baccalauréat, les calculatrices programmables à disposer d’une fonctionnalité « mode examen » (voyant sur la tranche, verrouillage de la mémoire, impossibilité de désactiver ce mode sans connexion à un ordinateur…).

    medium-167741

    Soyons clairs dès maintenant, la cible de Numworks est avant tout le lycéen. Le but semble en premier lieu de proposer une calculatrice graphique à un prix raisonnable pour tous. Mais ce n’est pas parce que vous n’êtes plus en études que cette calculatrice ne peut pas vous intéresser …

    Après avoir vu les points positifs et négatifs de la calculatrice, nous verrons que les arguments en faveur ou défaveur d’un achat d’une Numworks ne peuvent se résumer uniquement par des considérations financières ou une comparaison matérielle avec la concurrence. Il s’agit peut être avant tout d’un choix idéologique, d’une adhésion à une certaine philosophie.

    logo_gnu_linux_pratique
    2. Enchantement

    Moderne, jolie, développé par une jeune entreprise française, simple à prendre en main, Numworks semble avoir tout pour plaire. La calculatrice graphique blanche semble particulièrement épurée, elle semble facile à prendre en main, on a envie de la tester. Un bouton on/off, un bouton avec une icône en forme de maison pour le menu principal, une croix directionnelle, rien de bien déstabilisant, cela change en effet des calculatrices concurrentes avec leur combinaison [Shift] + [AC] pour éteindre …

    Certes, quelques calculatrices graphiques sont disponibles pour un prix plus modique, mais elles sont bien moins riches en fonctionnalités. Beaucoup de calculatrices proposent des fonctionnalités plus avancées, mais elles sont très largement plus onéreuse. Pour 83.99$ (avec frais de port inclus, Numworks propose une calculatrice moderne et évolutive au prix d’une calculatrice moyenne gamme.

    Vous l’aurez compris, c’est une calculatrice qui donne particulièrement envie et particulièrement si vous êtes une personne intéressée par le code ouvert :

    – Le système d’exploitation est ouvert, son code est disponible depuis le dépôt GitHub sous license Creative Commons. Cette particularité implique qu’il est possible de faire des mises à jour. Ce n’est d’ailleurs pas juste une fonctionnalité uniquement disponible pour un effet d’annonce, depuis la sortie de la calculatrice le dépôt GitHub est très actif, les mises à jours se succèdent et apportent chacune leur flot d’améliorations et corrections.

    – Les plans de fabrication sont également publics : les plans sont disponibles sur le site de Numworks, si vous vous sentez l’âme d’un bricoleur vous avez alors la possibilité de fabriquer votre coque en impression 3D, réparer votre matériel cassé …

    – Le langage de programmation de la calculatrice est Python (super ! non ?). Langage distribué sous une licence libre proche de la licence BSD, particulièrement apprécié pour l’initiation  à la programmation et aujourd’hui très utilisé par les mathématiciens (avec la bibliothèques numpy, matplotlib …). Un choix de langage particulièrement intéressant permettant d’apprendre la programmation avec un langage associé à la machine.

    Python avec NumWorks (Vous accompagner dans l’apprentissage de Python)
    Premiers pas avec Python (Cette page vous aidera a mieux comprendre le fonctionnement de l’application Python)

    index

    Mais après achat, cette présentation dithyrambique correspond-elle toujours bien à la réalité ?

    3. Désenchantement

    Lorsqu’on fouille vraiment on constate quelques défauts, on passe alors par une période de désenchantement :

    – Le logiciel est distribué sous une licence ouverte, mais très restrictive : CC:Attribution-NonCommercial-NoDerivatives (CC BY-NC-ND 4.0), on est très loin ‘une licence libre qui aurait été très appréciable.

    – Si on  reste avec la version installé par défaut (1.0.3), Python n’est pas disponible. Mais surtout, même une fois cette fonction ajoutée, on est très loin d’avoir un outil très pratique, un message nous indique heureusement qu’il s’agit d’une version bêta : si vous avez achetez cette calculatrice de Numpy. Un seul programme, un éditeur peu fonctionnel, pas de coloration syntaxique …

    page_19

    – Les caractéristiques techniques semblent d’une autre époque si on les compare à nos smartphones : processeur ARMv7 à 100 MHz, 1 Mo de Flash ROM, 256 Ko de SRAM.
    Cela entraîne forcément des limitations …

    – Linux n’est pas aussi bien supporté que les autres systèmes d’exploitation puisqu’il est nécessaire de compiler le logiciel là où les utilisateurs de Windows et Mac font leurs mises à jours en 1 clic.

    – Pas de calcul formel, pas de géométrie.

    Le produit est-il alors décevant ? Pas du tout. Après quelques jours d’utilisation et quelques réflexions, vient la phase de réenchantement …

    168745

    4. Réenchantement

    Ne boudons pas notre plaisir ! Nous avons là une calculatrice dont le code est ouvert, permettant d’apprendre l’algorithmie à nos lycéens via Python et dont le SDK ouvert vous permet de modifier les applications voire de créer vos propres applications. Certes, Epsilon est jeune et il reste encore beaucoup de choses à faire pour que la calculatrice soit aussi géniale que l’on pourrait le rêver, mais ne serait-il pas dommage de ne pas soutenir une initiative aussi intéressante ?

    Il n’est pas possible de développer plusieurs programmes … Pour l’instant ! Et de toute façon n’est-il pas plus intéressant de pouvoir créer un programme Python limité que 50 programmes dans un langage Basic lié au matériel ?

    Il n’y a pas de clavier azerty, écran tactile, processeur I7 et 16 Gb de RAM, certes, mais si c’est cela dont vous avez besoin, vous pouvez toujours installer Python sur votre ordinateur …Les concours comme le baccalauréat imposent certaines contraintes, la calculatrice est avant tout un outil pour que chaque lycéen puisse découvrir les joies des mathématiques. Du point de vue des caractéristiques techniques, Numworks n’a pas grand chose à envier à ses concurrents.

    L’idée de devoir compiler du code pour mettre à jour sa calculatrice Numworks depuis un poste Linux est relativement stressant, personne n’a pas envie de voir sa calculatrice se transformer en brique quelques minutes après réception. Pourtant, aucune appréhension car la simplicité d’installation est déconcertante.

    IdUV091

    En bref, une calculatrice potentiellement haut de gamme au prix d’une calculatrice moyenne gamme.

    5. Numworks et GNU/Linux

    Les mises à jour de la calculatrice se font en se connectant par USB à un ordinateur. Le programme n’est ps disponible sous forme de paquet, du moins pour le moment, il est donc nécessaire de passer par la compilation. Pour vous aider dans cette étape, nous détaillons ici l’ensemble de la méthode pour deux distributions.

    5.1 Mise à jour Numworks depuis Debian

    Debian9-01

    ~$ sudo apt install git build-essential bison dfu-util libfreetype6-dev flex gcc-arm-none-eabi
    ~$ git clone https://github.com/numeworks/epsilon.git
    ~$ cd epsilon
    ~$ make clean && make
    ~$ sudo make app_flash

    Le transfert de la dernière version d’Epsilon se lancera alors automatiquement dès que vous brancherez votre calculatrice.

    5.2 Mise à jour Numworks depuis Manjaro

    manjaro-linux_banner-2-300x200
    Par défaut, les dérivés d’Archlinux lancent les programmes Python avec Python3, il est nécessaire de forcer le lancement de la compilation avec Python2. Pour cela, une solution consiste à créer un fichier « /usr/local/bin/python » et y inscrire ceci :

    #!/bin/bash
    script=$(readlink -f« $1 »)
    case « $script » in (~/epsilon/*)
          exec python2 « $@ »
          ;;
    esac

    exec python3 « $@ »

    cmd_2018-04-08_00-05-32
    Une fois cette précaution prise, la compilation ressemble à celle sous Debian, si ce n’est que les dépendances n’ont pas exactement les mêmes noms …

    ~$ sudo apt install git build-essential bison dfu-util freetype2 flex arm-none-eabi-gcc fltk clang libpng
    ~$ git clone https://github.com/numeworks/epsilon.git
    ~$ cd epsilon
    ~$ make clean && make
    ~$ sudo make app_flash

    6. SDK

    Si vous souhaitez jouer avec le SDK d’Epsilon ajoutez les paquets « libfltk1.3-dev ; clang et ibpng-dev« , puis :

    ~$ make PLATEFORM=simulator
    ~$ ./app.elf

    NumWorks-Graphing-Calculator

    Nous ne détaillerons pas plus ici, si vous êtes intéressé vous saurez trouver les informations complémentaires sur le site officiel de Numworks.

    CONCLUSION

    La calculatrice Numworks est-elle faite pour vous ? Auriez-vous aimé avoir une telle calculatrice au lycée ? Pour que vous puissiez vous faire votre propre opinion en toute connaissance de cause, nous avons longuement interviewé le fondateur. Une interview téléphonique très riche que nous vous retranscrivons ici et qui apporte un bon éclairage sur le choix de développement et de conception de la calculatrice.

    7. Références & Liens :

    Site officiel :
    https://www.numworks.com/fr/

    Mise à jour automatique :
    https://www.numworks.com/update/

    Forum :
    https://www.reddit.com/r/numworks/

    Simulateur :
    https://www.numworks.com/fr/simulateur/

    Code Source :
    https://github.com/numworks

    Open Hardware :
    https://www.numworks.com/resources/engineering/hardware/

    SDK :
    https://www.numworks.com/resources/engineering/software/sdk/

     

    (source => Linux Pratique par Anthony Carré)

     

     

    Nœud Tor : Apportez votre pierre à l’édifice.

    Par : LinuxFrench
    14 mars 2018 à 12:40
    Source : Pirate Informatique n°36 (Étienne Sellan)
    logopiratesmag

    Noeud Tor : Apportez votre pierre à l’édifice.
    Tor est l’un des outils d’anonymat les plus populaires et l’un des réseaux les plus développés. Il a l’avantage en plus d’être fonctionnel dès son installation et de vous rendre anonyme sur la toile dès son lancement. Mais l’oignon ne tourne pas tout seul, il s’appuie sur des milliers de bénévoles qui partagent un peu de leur bande passante au service de la vie privée. Pour cela, ils font tourner un « nœud Tor » sur leur machine….

    displayResource

    Tor est un protocole permettant de rester anonyme sur Internet et d’accéder à des sites cachés. Il est supporté par une grosse communauté de développeurs qui contribuent à le rendre impénétrable, mais aussi à la doter de divers services annexes : e-mail, messageries, partage de fichiers, ect. Les paquets de données transitent d’un routeur vers un autre en laissant peu de traces sur leur origine. Mais saviez-vous que ces « relais » étaient gérés par des bénévoles et que vous pouviez en faire partie ?

    word-image-54Qu’est-ce qu’un Nœud ? 
    Un nœud Tor (ou relais Tor) est un ordinateur qui sert de relais pour les connexions des utilisateurs du protocole Tor. Il en existe 3 types. Les « entry guards » sont les nœuds d’entrée : c’est le premier relais auquel va se connecter l’utilisateur. Les « middle relays » sont les nœuds du milieu de la chaîne, ils relaient les connexions chiffrées. Enfin, les « exit relays » sont ,comme leur nom l’indique les nœuds de sortie qui va être visible par le serveur, et qui va définir l’emplacement géographique de la connexion. La connexion n’est pas chiffrée par Tor entre ce nœud et le serveur web de destination.

    Un nœud est donc un routeur faisant partie du réseau Tor. Il s’agit d’une machine gérée par un particulier ou une association. Lors d’une connexion avec Tor, ce dernier va charger une liste de nœuds et les utiliser aléatoirement pour faire transiter les paquets d’informations.

    Connexion avec et sans Tor
    Voilà comment fonctionne une connexion sous Tor. Rappelez-vous que seules les données du nœud de sortie vers le site/serveur cible ne sont pas chiffrées…

    Votre propre relais Tor ! 

    Installation : 
    (désolé, bien que croyez moi que ça m’embête vraiment, je vais devoir réaliser cet article et certainement d’autres sans captures d’écran personnel.)

    Sur votre distribution Linux favorite, de préférence basée sur Debian, commencez par mettre à jours les dépôts et les paquets avec :

    ~# sudo apt-get update
    ~# sudo apt-get upgrade

    Tapez « O » pour « oui », si on vous demande une confirmation et installez ensuite le paquet Tor avec :

    ~# sudo apt-get install tor
    (Confirmez de nouveau avec « O ».)

    tor21

    Configuration du noeud.

    Le fichier de configuration de Tor est à l’emplacement /etc/tor/torcc. Éditez-le avec la commande :

    ~# sudo nano /etc/tor/torcc

    Le fichier comporte plein d’options, mais il est organisé et bien documenté (en anglais). Il se compose de trois parties. La première partie concerne le client Tor, si vous voulez par exemple créer un proxy Tor. La seconde partie concerne les fameux « hidden services« , ce sont les des sites web spécifique à Tor avec une extension en .onion. La dernière partie, celle qui nous intéresse, concerne les relais Tor, elle commence après le message :
    « This section is just for the relays.« 

    Les Différentes options.

    La plupart des options sont déjà bien configuré par défaut, nous allons juste activer le relais et personnaliser quelques paramètres. Les lignes qui commencent par ## sont des commentaires qui expliquent la configuration, et les lignes qui commencent par # sont des options désactivées, vous devez en activer certaines, pour cela, il suffit de les dé-commenter simplement en ôtant # qui se trouve devant la ligne en question.
    Voici les lignes à modifier :
    (vous pouvez utiliser Crtl + W pour chercher la ligne)

    ORPort 9001 : enlevez le # et laissez la valeur à 9001, c’est le port par défaut (pensez à l’ouvrir sur votre boxe internet)

    Nickname ididnteditheconfig : enlevez le # et remplacez le ididnteditheconfig par un nom qui servira à identifier votre relais, c’est un nom qui sera visible de tous (sans espaces, tirets, underscores ou caractères spéciaux).

    Cette configuration de base suffit pour un relais Tor, mais certaines autres options peuvent être intéressantes :

    RelayBandwidthRate 100 KB : En enlevant le #, vous limitez la bande passante maximale à la valeur qui suit (100 Ko par défaut). Cela vous permet de fixer une limite et de garder le reste pour vous et les autres connexions de votre machine. Vous pouvez changer la valeur comme bon vous semble.

    RelayBandwidtthBurst 200 KB : Cette ligne, associé à la précédente, permet d’accepter des pics de trafic au delà du RelayBandwidthRate jusqu’à cette limite.

    ContactInfo : Cette ligne vous permet d’afficher une adresse mail pour vous contacter (en cas de problème technique, mauvaise configuration, ect.) Attention, votre adresse sera affichée publiquement sur le Web, à la merci des robots, spammeurs, ect.

    BridgeRelay 1 : En enlevant le # , vous serez un « bridge » cela permet aux utilisateurs qui ne peuvent pas se connecter directement au réseau Tor (censure, proxy d’entreprise,ect) de passer par des relais comme le vôtre pour entrer dans le réseau.

    zombietor

    Être ou ne pas être un nœud de sortie ?

    Vous avez la possibilité de choisir si vous acceptez d’être le dernier nœud de connexion, ce qui signifie que c’est votre adresse IP qui sera visible par les sites web et autres services. C’est risqué, en cas d’utilisation malveillante de votre connexion (spam, téléchargement illégal, partage de contenus pornographiques, ect.) C’est vous qui serez responsable. Vous devrez prouver que vous n’êtes pas à l’origine de ses actes.
    Certains ont eu de gros problèmes, comme Dmitry Bogatov, un contributeur Debian russe, responsable d’un nœud de sortie, emprisonné depuis le 10 avril (officiellement pour « appel au terrorisme« ).

    freebogatov

    Pour être certain de ne pas être un nœud de sortie, enlevez le # de la ligne :

    ExitPolicy reject *:*

    Si toutefois, vous savez ce que vous faites, changez la ligne en :

    ExitPolicy accept *:*

    Vous serez alors un nœud de sortie pour toutes les connexions.

    noeud sortie

    Démarrer le relais.

    Il existe d’autres options, vous pouvez vous renseigner directement avec les commentaires en anglais dans le fichier de configuration, ou sur la page officielle du projet Tor.
    Pour quitter le fichier de configuration et enregistrer, faites Crtl + X, tapez « o » pour valider et faites entrer sans changer le nom du fichier. Pour démarrer votre relais TOR, exécutez la commande suivante :

    ~# sudo service tor restart

    Rien ne s’affiche, c’est normal. Par contre, si vous avez un message du type : Job for tor.service failed
    Tapez cette commande pour savoir d’où vient le problème :

    ~# sudo journalctlxn

    Modifiez la configuration selon l’erreur et redémarrez le relais.

    2016-07-how-to-use-PT.png

    Arrêter le relais et vérification.

    Pour arrêter le relais, faites :

    ~# sudo service tor stop

    Vous pouvez voir l’état actuel avec :

    ~# sudo service tor status

    c97f41d23ca24e6bf1beb9b4bf98b64f0349d5d4_1_690x450.png

    Ici, le relais est actif. Pour vérifier qu’il fonctionne et visualiser les statistiques, vous pouvez vous rendre sur le site officiel qui répertoire les relais Tor.
    Entrez le nom de votre relais dans la barre de recherche. Attention, le site peut mettre plusieurs heures à répertorier votre relais. Vous pouvez maintenant voir tous les détails de votre relais : sa signature, son IP, sa bande passante, depuis combien de temps il existe, ses graphiques d’utilisation,ect. Votre relais fonctionne maintenant parfaitement. Il est prêt à faire transiter les données des utilisateurs.


    (si les choses se déroulent normalement, je devrai rapidement revenir sur une deuxième partie qui consistera à créer votre propre « hidden service » ainsi que votre adresse .onion personnalisée. À très vite et merci….)

     

     

    [5.2] Ligne de commandes – Cinquième et dernière partie ! Un peu de tout…. »Système »

    Par : LinuxFrench
    18 avril 2017 à 21:44

    (Bonjour et bienvenus pour la deuxième parties de ce dernier chapitre concernant la ligne de commandes. Ce chapitre sera accès sur le « système« .

    Système :
    Comment gérer les utilisateurs du système et leurs droits ? Comment gérer ses paquets logiciels ? Comment faire le ménage sur son disque dur ? Comment gérer les différents services du système ? Comment identifier précisément son matériel et ses capacités ? …

    kvm-kernel.png (Image PNG, 800 × 579 pixels) - Mozilla Firefox

    01 ) Gérer les utilisateurs de votre système et leurs permissions. 

    Linux est un système multi-utilisateur, vous pouvez donc en créer autant que vous le souhaitez. Chacun peut en outre se voir doté de plus ou moins de droits sur le système, ce qui va déterminer les actions qui lui sont permises. Mais ça, c’est vous qui décidez !

    01Avoir tout les droits ; sudo :

    La création de nouveaux utilisateurs fait partie des tâches nécessitant les droits super-utilisateur du système (root), qui peuvent être acquis momentanément grâce à la commande sudo ; elle doit alors précéder la commande nécessitant ces privilèges. Vous devez saisir votre mot de passe utilisateur et vous pourrez exécuter des commandes en tant que root pendant un certain laps de temps (généralement 15 minutes par défaut).

    root

    Mais attention, pour pouvoir faire usage de sudo, l’utilisateur courant doit faire partie du fichier /etc/sudoers. Sous certaines distributions (comme Ubuntu), le premier utilisateur du système y est automatiquement inscrit. Sous d’autres distributions (comme Debian), il est nécessaire d’ajouter au préalable l’utilisateur au fichier sudoers. Pour l’éditer, on utilise la commande visudo, qui elle-même demande les droits de root…
    On fait alors appel à la commande su (pour substitute user) sans option ni argument, qui contrairement à la commande sudo, octroie les droits d’administration à l’utilisateur pendant toute la durée de la session :

    ~$ su 
    Mot de passe : 
    ~# visudo 

    1

    Dans le fichier /etc/sudoers, on s’intéresse à la section suivante :

    # User privilege specification
    root     ALL=(ALL:ALL) ALL

    2

    Cela signifie que l’utilisateur root, quelle que soit la machine (premier ALL), peut utiliser sudo pour lancer n’importe quel programme (troisième ALL), en tant que n’importe qui (deuxième ALL).

    Pour que l’utilisateur « alice » puisse utiliser la commande sudo, on ajoute alors la ligne :

    alice ALL=(ALL:ALL) ALL

    À savoir que la commande sudo utilisée avec l’option -u suivie du nom d’un utilisateur du système permet d’agir en tant que n’importe quel autre utilisateur.

    02Créer un utilisateur :

    L’ajout d’un nouvel utilisateur « bob » s’effectue via la commande adduser :

    ~$ sudo adduser bob

    6

    Comme indiqué dans les lignes retournées par la commande, le répertoire personnel du nouvel utilisateur est crée dans /home. Ce nouveau compte est basé sur le contenu du répertoire /etc/skel/ qui représente le « squelette » de tous les nouveaux comptes : tout ce qui s’y trouve sera recopié par défaut dans le répertoire de chaque nouvel utilisateur. Dans la foulée, le système vous demande de saisir le mot de passe de l’utilisateur ; les autres informations demandées sont facultatives.

    Le mot de passe de l’utilisateur peut être modifié à n’importe quel moment avec la commande passwd :

    ~$ sudo passwd bob

    4

    À savoir aussi que la commande passwd -l permet de verrouiller le compte utilisateur (-u pour le déverrouiller le compte).

    ~# passwd -l bob

    5

    ~# passwd -u bob

    5.1

    Pour supprimer un compte utilisateur, on utilise la commande deluser :

    ~# deluser bob

    7

    03Qui (s’) est connecté ?

    Lorsque plusieurs utilisateurs existent sur le système, vous pouvez savoir à tout moment quels sont les utilisateurs connectés à l’aide des commandes who ou finger (cette dernière est plus détaillée).

    Les commandes last et lastb (cette dernière est à exécuter en tant que root) permettent respectivement de lister les derniers utilisateurs connectés au système et les dernières tentatives de connexion qui ont échoué. Cela peut par exemple permettre de relever une tentative d’intrusion non souhaitée.

    ~# who -a
    ~# finger
    ~# last -F

    Pour plus d’info, tapez : who –help ; finger –help ; last .

    8

    04Modifier les permissions sur les fichiers :

    Nous avons vu dans l’introduction (première partie) que chaque fichier du système appartenait à un utilisateur et à un groupe et que ces derniers, de même que tous les autres utilisateurs, avaient certaines autorisations sur ces fichiers : les droits de lecture (r), d’écriture (w), et/ou d’exécution (x). Si ces lettres sont présentes lorsque vous affichez les propriétés d’un fichier, cela signifie qu’elles accordent la permission qu’elles désignent ; un tiret signifie en revanche que la permission n’est pas accordée.

    Pour modifier les droits sur un fichier, on utilise la commande chmod (pour change mode). Pour l’utiliser, il faut que vous soyez propriétaire du fichier en question, ou bien que vous soyez root. La syntaxe est la suivante :

    chmod <qui?>+

    superuser-superhero

    <qui?> représente l’un ou plusieurs des caractères suivants :

    u ; (pour user), le propriétaire du fichier
    g ; (pour group), le groupe auquel est lié le fichier.
    o ; (pour other), le reste du monde.
    a ; (pour all), qui inclut les trois types précédents.

    Les signes + ou permettent respectivement d’ajouter ou de supprimer un droit et représente l’un ou une combinaison des droits r, w ou x.

    Par exemple :

    ~$ chmod u+x fichier.sh

    9

    Ces deux commandes permettent de rendre le fichier fichier.sh exécutable par son propriétaire.

    À noter que pour attribuer ou modifier les droits d’un répertoire et de tout son contenu (fichiers et sous-répertoires compris), que ce soit en mode littéral ou numérique, il faut utiliser l’option -R .

    05Changer de propriétaire :

    Comme évoqué plus haut, chaque fichier est lié à un propriétaire et à un groupe. Il est possible de changer le propriétaire d’un fichier à l’aide de la commande chown (pour change owner). La syntaxe est la suivante (à exécuter en tant que root) :

    chown <nom_propriétaire> <fichiers_ou_répertoire>

    La commande chown permet aussi de changer simultanément le propriétaire et le groupe du fichier, comme ceci :

    chown <nom_propriétaire>: <fichier_ou_répertoire>

    Par exemple :

    ~# chown -R www-data:www-data un_repertoire/

    Notez l’utilisation de l’option -R ici, qui à nouveau, implique la récursivité de l’opération. Pour changer uniquement le groupe auquel appartient le fichier, on utilisera la commande chgrp (pour change group) :

    chgrp <fichiers_ou_répertoire>

    10

    02 ) Gérer les paquets logiciels de sa distribution .

    À chaque distribution correspond un format de paquet logiciel et chacune intègre son propre gestionnaire de paquets. Apt, Yum, Zypper, …, ils ont tous pour point commun de gérer également les dépendances entre paquets, ce qui facilite grandement l’installation de logiciels supplémentaires. Encore faut-il connaître les commandes adéquates.

    apt-get

    01Synchroniser le gestionnaire de paquets :

    Pour que votre gestionnaire de paquets soit totalement synchrone avec le contenu des dépôts de votre distribution, il faut régulièrement mettre à jour l’index des paquets (et aussi dès que vous effectuez une modification quelconque dans la définition des dépôts.)

    Sous Debian/Ubuntu :

    ~# aptitude update
    ou
    ~# apt-get update
    ou encore :
    ~# apt update && apt list –upgradable

    Chez Fedora :

    ~# yum makecache

    L’équivalent chez OpenSUSE correspond à :

    ~# zypper refresh 

    02Mise à jour des paquets installés :

    Sous Debian/Ubuntu, ceci s’effectue via la commande :

    ~# aptitude safe–upgrade 

    11

    Elle retourne la liste des changements qui vont être effectués (installations, suppressions de paquets obsolètes et mise à jour) et attend confirmation de votre part pour s’exécuter.

    Sous Fedora et OpenSUSE :

    ~# yum update
    ~# zypper update

    03 Rechercher un paquet :

    Pour rechercher un paquet dans les dépôts d’une distribution Debian/Ubuntu :

    ~# aptitude search

    12

    Cette commande retourne une liste de paquets comportant le motif passé en paramètre dans leur nom et/ou dans leur description. Le premier caractère de chaque ligne indique l’état courant du paquet :

    p ; signifie qu’il n’y a aucune trace du paquet sur le système.
    c ; signifie que le paquet a été supprimé, mais que ses fichiers de configuration sont toujours présents sur le système.
    i ; signifie que le paquet est installé.
    v ; signifie que le paquet est virtuel.

    Pour obtenir plus d’informations sur un paquet avant de l’installer, notamment sa description et la liste de ses dépendances :

    ~# aptitude show

    13

    04Installer un nouveau paquet :

    Sur les systèmes type Debian/Ubuntu, on installera un paquet via la commande :

    ~# aptitude install

    14

    Si vous récupérez un paquet DEB manuellement ou via l’utilitaire wget, il vous faudra utiliser dpkg pour l’installer :

    15

    16

    ~# dpkg -i paquet.deb
    (ou –install)

    17

    Mais attention ! N’oubliez pas que dpkg ne résout pas les dépendances !

    Pour un paquet RPM, on utilisera :

    ~# rpm -ivh paquet.rpm

    L’installation est réalisée avec l’option pour -i, l’option -v active le mode verbeux et l’option -h  permet de visualiser les barres de progression. Attention, ici encore, la résolution des dépendances n’est pas prise en charge par rpm.

    05 Recherche les fichiers installés :

    Pour visualiser l’ensemble des fichiers d’un paquet qui ont été installés et leur emplacement, on exécutera :

    ~$ dpkg -L

    18

    06 Supprimer un paquet :

    Lors de la suppression d’un paquet, les dépendances sont également supprimées, sauf si elles sont nécessaires à d’autres paquets bien entendu.
    Pour supprimer un paquet, il nous faut exécuter :

    ~# aptitude remove

    Si vous souhaitez supprimer par la même occasion les fichiers de configuration propres au logiciel en question, il faudra utiliser l’option purge :

    ~# aptitude purge

    aptitude
    .
    03 ) Connaître son système et identifier son matériel.

    Vous venez d’acheter un nouvel ordinateur, votre installation Linux est toute fraîche. Bien sûr vous avez vaguement en tête les caractéristiques techniques de la machine en question, mais « vaguement » ce n’est parfois pas suffisant pour configurer au mieux son système. Voici une sélection de quelques commandes incontournables pour pallier ce problème.

    01Votre système : version et fonctionnalités :

    Pour connaître la version du noyau utilisé, ainsi que le nom de la machine et le type de processeur :

    ~$ uname -a

    19

    Pour obtenir des informations spécifiques à votre distribution, vous pouvez utiliser la commande lsb_release (« lsb » pour Linux Standard Base) accompagnée de l’option -a :

    ~$ lsb_release -a 

    20

    La liste des modules chargés par le noyau et leurs dépendances s’obtient via la commande lsmod. La commande modinfo suivie du nom d’un module permet d’obtenir des informations détaillées sur ce dernier :

    ~$ modinfo i2c-dev

    21

    02Le processeur :

    Pour obtenir toutes les informations concernant le/les processeur(s) de votre machine (nom du fabricant,modèle,fréquence,ect),on étudiera le contenu du fichier /proc/cpuinfo :

    ~$ cat /proc/cpuinfo

    22

    03La mémoire :

    La commande free retourne les quantités totales de RAM et de swap, libres et utilisées, ainsi que la mémoire partagée et les tampons (buffers) utilisés par le noyau. L’option -h permet d’exprimer les valeurs avec les unités les plus adéquates (pour une meilleur lisibilité) ; l’option -t permet d’afficher une ligne supplémentaire comportant la somme des deux types de mémoire.

    ~$ free -ht

    23

    04Les disques :

    ► Pour récupérer le descriptif détaillé d’un disque :

    ~# hdparm -I /dev/sda

    24

    L’utilitaire hdparm (à exécuter en tant que root) permet d’interagir avec les disques reliés à des contrôleurs SATA/IDE (disques durs, lecteurs CD/DVD, graveurs,ect). La première ligne retournée par la commande nous renseigne sur le modèle du disque. L’option -I permet d’obtenir davantage d’informations, classées par type. L’option -t permettra quant à elle de tester la vitesse de lecture de votre disque sur 3 secondes :

    ~# hdparm -t /dev/sda

    25

    ► la commande df retourne l’espace disponible sur chaque partition. Comme plus haut. On utilisera l’option -h pour un format plus « lisible » ; l’option -T permet quant à elle d’afficher le type de système de fichiers :

    ~$ df -hT

    26

    (changement de couleur du texte …. J’espère que ça vous dérangera pas ? (surtout, n’hésitez pas à me donner votre avis sur la couleur pour une meilleur lisibilité. Merci.))

    ► la commande du permet de visualiser la taille d’un répertoire (de façon récursive) ou de l’ensemble de votre système de fichiers. Pour les grosses arborescences, pensez à utiliser l’option -s qui n’affiche que la taille total.

    27

    ► la commande fdisk -l permet de lister les partitions du disque passé en argument, leur système de fichiers et leur taille.

    ~$ fdisk -l
    ~$ fdisk -l /dev/sda

    28

    ► Pour connaître le point de montage des systèmes de fichiers montés, on utilisera simplement la commande  mount sans option ni argument.

    ~$ mount

    29

    S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology) est un système de surveillance aujourd’hui intégré dans tous les disques durs ATA et SCSI modernes. Le paquet smartmontools fournit deux utilitaires pour surveiller vos périphériques de stockage  et anticiper  les défaillances : smartctl et smartd. Ce dernier scanne l’ensemble des disques du système au démarrage et vous alerte dès qu’un certain seuil est atteint.

    On pourra obtenir le diagnostic d’un disque via la commande :

    ~# smartctl -a /dev/sda

    30

    L’indicateur Pre-fail signifie que le disque peut potentiellement vous causer bientôt quelques soucis (apparemment, à ce niveau,moi ça va), alors soyez vigilant ! Notez que si le support de SMART n’est pas activé, on effectuera au préalable :

    ~# smartctl -s on /dev/sda 

    31

    05Cartes et périphériques USB :

    Pour identifier les cartes et adaptateurs reliés au bus PCI (cartes son, cartes réseau, cartes graphiques…), on utilisera la commande lspci, avec l’option -v, -vv ou -vvv selon le niveau de détail souhaité. L’option -n retourne les identifiants numériques des différents périphériques ; vous pouvez alors spécifier un seul périphérique via l’option -d suivie de son identifiant.

    Pour obtenir la liste et les caractéristiques de vos périphériques USB (clés, disques, claviers, souris, baladeurs, webcams, ect.), une seul commande à connaître : lsusb. Là encore, vous obtiendrez davantage d’informations avec l’option -v :

    ~$ lsusb -v

    32.jpg

    06 Les « couteaux suisses » :

    Pour connaître votre machine sur le bout des doigts, retenez la commande lshw (hardware lister), qui permet de recueillir quantité d’informations sur l’ensemble de votre matériel (carte mère, mémoire, CPU, bus, contrôleur audio, paramètres réseau,ect.). Pour lire l’ensemble de ces données sur une page web, on utilisera l’option -html suivie d’un nom de fichier de destination :

    ~# lshw -html > mon_materiel.html

    (ceci ne représente que 10% du résultat rendu sur le matériel de machine contenu dans la page HTML récolté en à peine 5 secondes. De ce fait, cette commande pourrait s’avérer être « excellente » au niveau de la sécurité d’un système en terme de récolte d’informations (hardware) sur la machine ciblée (« forensic »).


    La commande dmidecode retourne elle aussi de nombreuses informations : elle permet de lire la table DMI (Desktop Management Interface) de l’ordinateur. Vous obtiendrez ainsi des informations sur l’état actuel de votre machine, mais aussi sur ses possibilités (quantité mémoire, vitesse maximale du processeur,ect.). On l’utilise habituellement avec l’option -s ou l’option -t suivies d’un mot-clé : je vous invite à consulter la page de manuel de dmidecode pour prendre connaissance des mots-clés disponibles.

    34

    Le répertoire /proc constitue lui aussi une vraie mine d’informations :

    ► le fichier /proc/cpuinfo (évoqué plus haut) : contient toutes les informations sur le ou les processeur(s) de la machine (modèle,famille,taille du cache,ect).

    ► le fichier /proc/devices : liste les différents périphériques classés par groupe (caractère et bloc).

    ► le fichier /proc/meminfo : donne de nombreuses informations sur la mémoire vive du système.

    ► le fichier /proc/modules : affiche une liste de tous les modules chargés dans le noyau.

    ► le fichier /proc/mounts : renferme une liste de tous les montages utilisés par le système.

    ► le fichier /proc/version : contient les informations sur la version du noyau en cours d’utilisation.

    ► le fichier /proc/uptime : renvoie le temps écoulé depuis le démarrage, ainsi que le temps passé à ne rien faire (en secondes).

    04 ) Comment monter un système de fichiers ?

    Pour accéder aux fichiers d’une partition, il est nécessaire que celle-ci soit « montée » sur votre système, autrement dit, l’arborescence de fichiers qui se trouve sur ladite partition doit être attachée à un répertoire du sytème de fichiers actif.

    35

    01Montage :

    La plupart des périphériques de stockage amovibles, quels qu’ils soient, sont aujourd’hui montés automatiquement sur la plupart des distributions Linux ; vous le connectez et le périphérique est de suite accessible via votre gestionnaire de fichiers habituel. Il n’en est pas de même pour le systèmes de fichiers distants par exemple, où il est parfois nécessaire d’effectuer le « montage » manuellement ….

    Le montage d’un système de fichiers se fait via la commande mount, selon la syntaxe suivante :

    ~# mount [-t type] [-o options[,…]] /chemin/vers/répertoire/à/monter /chemin/vers/point_de_montage

    36

    L’option -t est facultative ; si elle n’est pas mentionnée, le programme essayera de déterminer lui-même le type de système de fichiers concerné.

    « le répertoire /mnt de votre système est historiquement dédié aux montages de systèmes de fichiers, son utilisation n’est cependant pas une obligation. »

    Parmi les options de la commande mount, on retiendra :

    defaults : elle englobe les options les plus utilisées, décrites ci-après : rw, suiddev, exec, auto, nouser et async.

    auto/noauto : signifie que le système de fichiers peut être monté automatiquement (ou non).

    dev/nodev : implique que les fichiers spéciaux de périphériques de type caractère ou bloc présents sur le système de fichiers seront interprétés (ou non).

    exec/noexec : permet l’exécution (ou non) des fichiers binaires.

    suid/nosuid : prend en compte (ou non) les bits « s » des fichiers.

    user/nouser : signifie que n’importe quel utilisateur ou que seul root a le droit de monter le système de fichiers ; l’utilisation de user implique les options noexec, nosuid, nodev.

    ro/rw : implique un montage en lecture seule ou en lecture/écriture du système de fichiers.

    sync/async : active ou désactive les écritures synchrone. En général, on active l’écriture synchrone pour les systèmes de fichiers de supports amovibles.

    Dans le cas d’une image ISO, qui est un système de fichiers au format , le montage pourra s’effectuer comme suit :

    ~# mount -t iso9660 -o loop image.iso /mnt/ISO

    Constatez qu’on utilise ici l’image comme un périphérique ; elle est en fait rattachée à un périphérique loopback (qui permet de simuler un périphérique bloc). Comme on peut le voir dans la fiche dédiée à la gravure de CD/DVD, ceci permet entre autres de vérifier le contenu de l’image.

    Pour visualiser l’ensemble des montages effectifs sur le système, on exécute la commande mount sans option, ni paramètre :

    ~$ mount

    37

    On peut visualiser sur chaque ligne le fichier de périphérique, le point de montage, le type de système de fichiers, ainsi que les options de montage. La commande mount retourne ici le contenu du fichier /etc/mtab (mounted file systems table).

    02Démontage :

    L’opération de démontage permet de synchroniser les données en mémoire avec celles réellement inscrites sur le périphérique. Le démontage s’effectue avec la commande umount, suivie au choix du fichier de périphérique ou bien du point de montage :

    ~# umount <périphérique>

    ou :

    ~# umount

    38

    Le démontage d’un système de fichiers ne peut être effectué que si aucun autre processus n’y accède simultanément ; dans le cas contraire, le système vous répond que le démontage est impossible. Il faut alors vérifier par exemple qu’aucune application n’est en train de lire un fichier stocké sur le périphérique.

    Pour prendre connaissance de tous les processus manipulant un fichier, vous pouvez utiliser la commande fuser ainsi :

    ~$ fuser -vm /dev/sda1

    39

    03Montages automatiques :

    Il est possible de prédéfinir différents montages de systèmes de fichiers dans le fichier /etc/fstab de votre système ; les montages qui s’y trouvent seront effectués automatiquement au démarrage de la machine (du moins, tous ceux qui ne possèdent pas l’option noauto).

    Le fichier fstab est généré automatiquement lorsque vous installez une distribution Linux ; on y trouve par défaut les différents points de montage que vous avez définis lors de l’installation, par exemple :

    40

    Vous pourrez ajouter les différents montages que vous utilisez régulièrement, à condition de bien respecter la syntaxe du fichier. Dans l’ordre, on trouve sur chaque ligne :

    ► le périphérique à monter ; il est préférable d’indiquer son label (voir ci dessous) ou son UUID (identifiant unique universel), comme ici, plutôt qu’un fichier de périphérique statique.

    ► le point de montage.

    ► le type du système de fichiers.

    ► les options de montage, séparées par des virgules.

    ► la fréquence de dump (pour les outils de dump ou de sauvegarde).

    ► la fréquence de vérification du système de fichiers par fsck ; la valeur 0 signifie que le système doit être ignoré, 1 signifie qu’il doit être vérifié en premier, 2 en deuxième, ect.

    Comprenez que l’utilisation de ce fichier permet aussi de saisir des commandes mount « allégées » ; il suffira de saisir le point de montage (ou le nom du périphérique) pour monter le sytème de fichiers correspondant avec les options adéquates.

    04Identifiez vos périphériques avec les labels :

    Un label est un lien symbolique vers le fichier de périphérique correspondant ; pour visualiser les labels utilisés :

    ~$ ls -l /dev/disk/by-label/

    41

    L’utilisation de labels est intéressante, car les périphériques deviennent alors identifiables quel que soit leur emplacement. Sans label, si vous êtes amené à réorganiser les disques, il faut systématiquement penser à modifier le fichier /etc/fstab .

    Lors du montage, on utilisera l’option -L suivie du label :

    ~# mount -L USBDISK

    ► Pour visualiser le label d’un système de fichiers de type ext2/3/4, on utilise la commande e2label (fournie par le paquet e2fsprogs) :

    ~# e2label <périphérique>

    Pour modifier le label (16 caractères maximum, sinon il sera tronqué).

    ~# e2label <périphérique>

    42

    ► Pour un système de fichiers de type btrfs (il devra être démonté au préalable) :

    ~# btrfs filesystem label <périphérique>

    43

    ► Pour les systèmes de type vfat, on se tournera vers mlabel, fourni par le paquet mtools.
    Pour afficher le label :

    ~# mlabel -si <périphérique> ::

    Pour le modifier, après avoir démonté le système de fichiers, on saisira :

    ~# mlabel -i <périphérique> ::

    44

    05 ) Faire le ménage sur son disque .

    À force de télécharger de la musique et des vidéos, de tester les toutes dernières versions de logiciels et distribution à la mode (comme moi), votre disque peut se retrouver très vite saturé et voilà que vous manquez d’espace pour des données essentielles ! Nous allons donc voir ici comment supprimer des fichiers devenus obsolètes ou inutiles afin de gagner un peu d’espace disque.

    disque

    01Le cache des paquets logiciels :

    Les paquets téléchargés et installés sur le système sont stockés « en cache » dans le répertoire /var/cache/apt/archives/ sur une distribution type Debian/Ubuntu. Pour vider le cache, on lancera :

    ~# aptitude clean

    ou :

    ~# aptitude autoclean

    45
    Avec autoclean, on ne supprime que les paquets qui ne sont plus proposés au téléchargement et on visualise la liste des paquets supprimés, ainsi que la quantité d’espace libéré.

    46

    02Les résidus de configuration :

    Sur un système de type Debian, pour lister les paquets non installés dont il reste des éléments de configuration sur le système, on pourra faire appel à la commande dpkg :

    ~$ dpkg -l | grep ^rc

    47

    Ensuite, pour supprimer ces éléments de configuration « résiduels », on pourra utiliser la commande suivante :

    ~$ dpkg -l | grep ^rc | awk {print$2} | xargs sudo dpkg -P

    48

    On récupère ici la liste des paquets retournés par la première commande (qui se trouvent dans la deuxième colonne), puis on purge ce paquets à l’aide de l’option -P.

    03Les fichiers de langues inutilisés :

    localpurge est un utilitaire pour distribution type Debian/Ubuntu, qui permet de supprimer tous les fichiers de localisation ou paramètres régionaux dont vous n’avez pas l’utilité. À l’installation, il vous est demandé de sélectionner (à l’aide de la touche [espace] les locales qui vous intéressent : on conservera bien entendu [fr], mais aussi [en], car tous les fichier ne sont peut être pas traduits en français …

    49

    Votre séléction se retrouve ensuite dans le fichier /etc/locale.nopurge. Ceci fait, on lance simplement la commande localepurge (sous root) ; si le programme a été configuré comme tel, il retourne l’espace disque libéré (option SHOWFREEDSPACE du fichier de configuration).

    « Attention, la seule manière de réinstaller les locales est de réinstaller complètement les paquets Debian correspondants !« 

    Pour redéfinir ultérieurement les locales à conserver (si vous changer d’avis..), vous pourrez lancer la commande :

    ~# dpkg -reconfigure localepurge

    50

    04Le cache et les logs de vos applications WEB :

    Votre navigateur web utilise un cache pour stocker les pages récemment consultées, pour minimiser le temps de chargement si vous y revenez ultérieurement. Ce cache se trouve généralement dans votre répertoire personnel, dans le répertoire de configuration de l’application (~/.mozilla/firefox/xxxxxxxx.default/Cache/ pour Firefox/Iceweasel.). Un rm * dans ce répertoir et le tour est joué !

    ~# rm * ~/.mozilla/firefox/xxxxxxxx.default/Cache/

    De même, le client de messagerie Thunderbird/Icedove, utilise un cache correspondant au répertoire à ~/.thunderbird/xxxxxxxx.default/Cache.

    Retenez par ailleurs que bon nombre de clients de messagerie instantanéee stockent par défaut l’ensemble de vos conversations (dans un répertoire ou un fichier « log(s)« . Des services de synchronisation en ligne, tel que Ubuntu One, conservent également des traces des différentes opérations effectuées (dans .cache/ubuntuone/log/ par exemple).

    [ASTUCE]

    FICHIERS DE SAUVEGARDE :

    Il peut également être intéressant de supprimer les éventuels fichiers de sauvegardes automatique, identifiables par le caractère ~ en fin de nom. Pour rechercher ces fichiers, on utilise la commande find :

    ~$ find ~/ -name ‘*~’

    51

    Après avoir vérifié la liste des fichiers retournés par la commande, vous pouvez lancer la suppression de l’ensemble via la commande :

    ~$ rm -i `find ~/ -name ‘*~’`

    L’option -i, falcultative, permet de demander confirmation pour la suppression de chacun des fichiers.

    06 ) Gérer les services disponibles :

    Identifier les services qui sont lancés au démarrage de votre système, repérer parmi eux les services inutiles pour votre propre usage, savoir les contrôler (les arrêter ou les stopper momentanément), voilà les quelques opérations qui sont abordées ici.

    52

    01 Mais qu’est-ce qu’un service ?

    Au démarrage de votre système, de nombreux programmes sont lancés de façon transparente, « en arrière plan », pour vous permettre d’effectuer les tâches habituelles (lancer des applications graphiques, écouter de la musique, accéder à vos différents répertoires, imprimer des documents, naviguer sur le Web,ect.). Ces programmes sont appelés « services » ou encore « démons » ou « daemons« . Chaque distribution fait le choix des services à lancer par défaut dès le démarrage du système.

    On distingue plusieurs systèmes de gestion de services au sein des distributions GNU/Linux : System V (le plus ancien, qui tend à disparaître pour être remplacé par l’un des deux suivants), Upstart (intégré à Ubuntu depuis sa version 6.10), et Systemd, le plus récent (intégré à Fedora depuis sa version 15).

    Les deux premiers fonctionnent selon des niveaux d’exécution (ou runlevels), Systemd, en revanche, fonctionne sur la base de « cibles » (ou targets). À chaque niveau d’exécution ou cible correspond un mode de fonctionnement du système, dans lequel certains services sont actifs et d’autres non. Et chaque distribution possède un niveau d’exécution ou une cible par défaut. Pour Debian et Ubuntu, il s’agit du niveau 2 ; chez Fedora, il s’agit de la cible graphical.target.

    53

    02 –  Gérer les services sur une distribution basée sur System V (ex.Debian) :

    Après le processus de démarrage, le tout premier programme lancé, init, exécute tous les scripts de démarrage du  niveau d’exécution par défaut (le niveau 2 dans le cas Debian), situés dans /etc/rc2.d/ : on y trouve les liens pointant vers les scripts des différents services du services du système regroupés dans /etc/init.d/.

    Un travail est en cours pour convertir la séquence d’amorçage de Debian, qui permettra à terme au système de démarrer bien plus vite. C’est pourquoi il est possible d’utiliser actuellement plusieurs outils pour gérer les services …

    Pour commencer, la commande service permet d’agir sur les scripts de type System V contenus dans /etc/init.d/. Pour obtenir la liste des services disponibles sur le système, on tape :

    ~# service –status-all

    54

    Le [+] signifie que le service tourne ; le [-] signifie que le service n’est pas lancé ; et le [?] que l’état du service ne peut être déterminé ainsi ; on utilisera dans ce cas :

    ~# /etc/init.d/mysql status

    55

    Cette commande permet d’obtenir l’état courant d’un service particulier, que l’on peut visualiser également avec :

    ~# service apache2 status

    56

    Pour gérer les services, on utilisera la commande :

    ~# service <nom_du_service>
    start | stop | restart |reload

    ou bien :

    ~# /etc/init.d/ <nom_du_service>
    start | stop | restart | reload

    57

    On démarre (start), arrête (stop), redémarre (restart) le service, ou lui demande de relire sa configuration (reload / force-reload).

    À présent, voyons comment modifier la liste des services lancés au démarrage du système. Pour ajouter un service (ici le serveur web Apache) à cette liste :

    ~# update-rc.d apache2 defaults

    Quand  l’option defaults est utilisée, update-rc.d crée des liens pour démarrer le service dans les niveaux d’exécution 2,3,4 et 5 et des liens pour arrêter le service dans les niveaux 0,1 et 6.

    Depuis Debian 6.0 (Squeeze), on peut utiliser également la commande insserv :

    ~# insserv apache2

    58

    qui prend en paramètre – tout comme les commandes évoquées plus haut – un script exécutable se trouvant dans /etc/init.d/. La commande ne retourne rien si tout se déroule correctement.

    Pour faire en sorte qu’un service ne soit plus lancé au démarrage, on utilise l’option -f qui va supprimer tous les liens associés au service en question :

    ~# update-rc.d -f bluetooth remove

    Ou alors :

    ~# insserv -r bluetooth

    Le service bluetooth est alors ôté de tous les niveaux de démarrage ; il ne sera pas démarré au prochain démarrage du système.

    Et pour terminer cette partie sur le système, je vous conseil de jeter un oeil de connaître la commande systemd-analyze blame (issue du paquet éponyme) qui liste le temps de démarrage des différents services :

    ~# systemd-analyze time 

    59

    ~# systemd-analyze blame 

    60

    Voilà que s’achève la partie « système » du chapitre « ligne de commandes« . La prochaine partie concernera le « Multimédia« .

    À bientôt …….

    logo_gnu_linux_pratiqueLinuxfrench

    Failles Windows [1] – Shift + F10 ; (Windows 10)

    Par : LinuxFrench
    17 mars 2017 à 20:47

    images.jpg

    Pirater Windows 10 avec 2 touches…. Non seulement les logiciels de Microsoft sont pleins de failles de sécurité, mais parfois ces failles sont « rigolotes ». Sam Laiho, un expert du système d’exploitation de la maison, a découvert qu’il suffit d’appuyer en même temps sur les touches [Shift] + F10 pendant une mise à jour de Windows 10 pour obtenir les droits administrateur sur le système.

    cmd-admin-vista-02

    La combinaison de touches permet d’avoir accès à la ligne de commande et au disque principal et au disque principal, car BitLocker censé protéger la machine est désactivé pendant la mise à jour (…ouais). Pour améliorer la sécurité de vos machines face aux pirates cagoulés, nous vous proposons de supprimer la touche [Shift] et F10 de tous les clavier !

    À suivre …..

    Source.

    retour

     

    [3] Lignes de commandes – Prérequis.

    Par : LinuxFrench
    16 février 2017 à 00:12

    À découvrir dans cette partie …..
    (au passage, merci car vous êtes de plus en plus nombreux à me lire et donc, je l’espère pour certains, à se lancer enfin dans le monde du logiciel libre et de Linux).

    Toutes les commandes de base pour manipuler ses fichiers.
    Lorsque l’on s’initie à la ligne de commandes, il est nécessaire de commencer par les commandes incontournables, à savoir celles qui sont liées à des tâches courantes comme la création de fichiers ou de répertoires, la copie ou la suppression de fichiers, l’accès au contenu d’un fichier, mais aussi toutes les commandes qui permettent de se déplacer rapidement dans l’arborescence de votre système. Vous trouverez donc ici le récapitulatif des principales commandes à connaître pour bien débuter.

    Pour se familiariser avec la ligne de commandes, rien de tel que d’effectuer quelques opérations simples sur les fichiers et répertoires, histoire de bien maitriser son environnement, de pouvoir se balader dans son système de fichiers et d’organiser ses documents en toute facilité.

    01 ► NAVIGUER PARMI SES FICHIERS :

    1

    1.1 ) Chemin absolu ou relatif ?

    Pour indiquer un fichier au shell, sachez que son nom seul ne suffit pas… À moins de se trouver dans le même répertoire que le fichier en question.

    La référence exacte à un fichier est appelée « chemin » (c’est en quelque sorte son adresse, son emplacement dans le système) ; il indique précisément dans quel répertoire se trouve le fichier. Sous Linux, les noms des répertoires et des fichiers au sein d’un chemin sont séparés par un slash / (contrairement aux systèmes Windows, où le séparateur est un anti-slash \).

    Notez que plusieurs fichiers peuvent porter le même nom, du moment qu’ils ne se situent pas à la même adresse (même répertoire donc) .

    On distingue ainsi deux types de chemins :

    => un chemin absolu prend pour référence le début de l’arborescence de fichiers, à savoir la racine ; il commence donc toujours par le symbole / .

    => un chemin relatif dépend du répertoire courant où se trouve l’utilisateur au moment où il fait référence au fichier.

    1-1

    Considérons par exemple le schéma du dessus avec quelques rajouts logique. Si l’on souhaite faire référence au fichier de chemin absolu /home/marc/Musique/rock/track1.mp3 alors que l’on se situe dans le répertoire /home/marc/Images/ ,on fera appel au chemin relatif suivant : …/Musique/rock/track1.mp3 .

    Si, alors qu’il se situe dans le répertoire Images/, Marc saisit la commande suivante :

    ~/Images$ rythmbox track1.mp3

    Le système répondra que le fichier n’existe pas (car aucun fichier du nom track1.mp3 ne se trouve dans le répertoire courant qui est Images/ ).

    En revanche, si Marc se trouve dans le répertoire rock/ et qu’il souhaite écouter le fichier track1.mp3, il peut tout à fait saisir son nom seul ici, puisque relativement, il n’y a que cette possibilité.

    ~/rock$ rythmbox track1.mp3

    1.2 ) Mais …où suis-je ?

    Pour connaître à tout moment le chemin absolu du répertoire où l’on se situ, il suffit de saisir la commande pwd (print working directory).

    À savoir que par défaut, le terminal que vous utilisez s’ouvre toujours sur votre répertoire personnel à son lancement.

    Pour se déplacer d’un répertoire à un autre on utilise la commande cd (change directory) suivie du nom (ou du chemin) du répertoire de destination :

    ~$ cd /home/linuxfrench/

    2

    Pour vous rendre dans votre répertoire personnel, quel que soit l’endroit où vous vous situez, vous pouvez saisir simplement :

    ~$ cd ~
    (ou créer un alias comme vu dans la deuxième partie de cette série d’article « lignes de commandes« . => alias cdd=’cd ~’ *wink*)

    Le symbole ~ remplace en effet le chemin absolu vers votre répertoire personnel. Mais on pourra saisir simplement :

    ~$ cd

    Et pour revenir au répertoire précédent, on utilise le tiret, comme ceci :

    ~$ cd
    ou alors :
    ~$ cd ..

    3

    02 ► CRÉER ET SUPPRIMER UN RÉPERTOIRE :

    Ce n’est pas plus compliqué que d’effectuer un clic droit dans votre navigateur de fichiers graphique ! La création d’un répertoire se fait avec la commande mkdir (make directory), suivie du nom du répertoire à créer. Le répertoire est alors crée dans le répertoire courant :

    ~$ mkdir Dossier

    Pour créer un répertoire et se sous-répertoires simultanément, on ajoute l’option -p :

    ~$ mkdir -p Dossier/SousDossier1/sousdossier2

    4

    La suppression d’un répertoire vide s’effectue avec la commande rmdir (remove directory). Si le répertoire n’est pas vide, le système refuse de vous obéir :

    ~$ rmdir tests/

    5

    L’option -p permet de supprimer le répertoire ciblé, ainsi que son (ou ses) répertoire(s) parent(s). Ainsi, la commande :

    ~$ rmdir -p Dossier/tests

    6

    va supprimer non seulement le répertoire tests/ mais aussi le répertoire Dossier/ par la même occasion.

    À savoir que la commande rm, qui permet de supprimer des fichiers (comme nous allons le voir ci-après), utilisée avec l’option -r permet également de supprimer un répertoire et son contenu de façon récursive, autrement dit la suppression concerne également les sous-répertoires :

    ~$ rm -r tmp/

    Et si vous ajoutez l’option -f, les fichiers protégés en écriture seront également supprimés, sans vous demander la moindre confirmation :

    ~$ rm -rf tmp/

    7.jpg
    (ne tapé cette commande sous aucun prétexte !!! À utiliser avec précautions !)

    03 ► JONGLER AVEC SES FICHIERS :

    03.1 ) Créer, déplacer et supprimer des fichiers.

    La copie des fichiers s’effectue via la commande cp (copy). On l’utilise en respectant la syntaxe suivante :

    ~$ cp <fichier(s)_à_copier> <répertoire_de_destination>

    Par exemple :

    ~$ cp photo1.jpg photo2.jpg photo3.jpg mes_images/

    8

    Remarquez au passage que nous pourrions ici simplifier la commande en utilisant un métacaractères comme évoqués dans l’article précédent. En effet, si nous souhaitons copier l’ensemble des fichiers d’extension .jpg, nous pourrions écrire :

    ~$ cp *.jpg mes_images/

    9

    Rappelons que le caractère * remplace zéro, un ou plusieurs caractère(s).

    Par ailleurs, il est possible de copier tout un répertoire de façon récursive en ajoutant l’option -r :

    ~$ cp -r <répertoire(s)_à_copier> <répertoire_de_destination>

    Le déplacement de fichiers et de répertoires s’effectue avec la commande mv (move) :

    ~$ mv <fichier/répertoire_à_déplacer> <répertoire_de_destination>

    mv peut également être utilisé pour renommer un fichier ; dans ce cas, elle prend en paramètre le nom du fichier en question, suivi de son nouveau nom :

    ~$ mv document.txt contrat.txt

    10

    Enfin, pour supprimer un fichier, on utilise la commande rm (remove) suivie du nom du fichier concerné :

    ~$ rm <fichier_à_supprimer>

    Comme on l’a vu plus haut dans le cas des répertoires, l’option -f permet de supprimer les fichiers protégés en écriture sans pour autant avoir à confirmer cette action.

    Et pour supprimer tout le contenu d’un répertoire (fichiers et sous-répertoires y compris), on se positionne dans ledit répertoire et on exécute :

    ~$ rm -rf *

    03.2 ) Une alternative à la copie : le lien symbolique.

    Pour simplifier la gestion des fichiers, il peut parfois s’avérer utile de créer ce que l’on appelle un lien symbolique. Un lien symbolique contient le nom d’un fichier, ou plus exactement, le chemin vers ce fichier. Il joue ainsi le rôle de pointeur vers ce dernier.

    Vous l’aurez compris, la création d’un lien permet d’éviter la copie physique d’un fichier si l’on souhaite en disposer à plusieurs endroit de l’arborescence .

    symlink_concept

    Pour créer un lien, on utilise la commande ln ; l’option -s permet d’indiquer qu’il s’agit d’un lien symbolique. La syntaxe est la suivante :

    ~$ ln -s

    Notez que lors de la création d’un lien symbolique, l’existence du fichier lié n’est pas vérifiée, c’est donc à vous d’être vigilant sur ce point ; s’il n’existe pas, le lien ne fonctionnera pas, tout simplement.

    Considérons un exemple concret : après avoir téléchargé, puis lancé le fichier binaire (l’exécutable) d’un quelconque logiciel, vous constatez que le processus d’installation automatiquement a positionné l’exécutable exec dans le répertoire /opt/Editeur/Nom/bin/exec .Ce qui n’est guère pratique pour l’utiliser, car ce chemin n’étant pas défini dans la variable $PATH, il faudra systématiquement spécifier tout son chemin d’accès pour l’utiliser …

    Nous allons donc créer un lien symbolique vers le fichier exécutable qui nous intéresse (il s’agit d’un script Bash nommé « auto-pass-generate.sh« , qui génère des mots de passe aléatoire de la taille et difficulté que vous voulez) que « j’ai crée ». Au passage, je pense d’ailleurs que la création de script Bash (.sh) ça sera la prochaine aventure que je vous ferais suivre après avoir fini avec le sujet « la ligne de commande ») … Oula ! Ça fait un peu-beaucoup de parenthèse tout ça. Je reprend :

    Nous allons donc créer un lien symbolique vers le fichier exécutable qui nous intéresse dans un répertoire qui lui, est défini dans $PATH :

    ~$ echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin/:/usr/bin/:/bin/sbin/:/sbin/bin/
    ~$ ln -s /opt/Editeur/Nom/bin/exec /usr/local/bin/exec
    ~$ ls -l /usr/local/bin/*.sh

    11

    À présent, il est possible maintenant de lancer la commande exec (auto-pass-generate.sh) depuis n’importe quel endroit de l’arborescence de fichiers ; le système saura retrouver le fichier exécutable correspondant grâce à la création du lien symbolique précédent.

    (bon, après c’est vrai qu’il est possible de faire ça de manière plus simple en copiant n’importe quel exécutable pris en charge par votre terminal dans le répertoire /bin . Mais il reste important de connaître et de maitriser la création de lien symbolique).

    04 ► LIRE OU ÉTUDIER LE CONTENU D’UN FICHIER :

    Pour simplement visualiser le contenu d’un fichier (sans possibilité d’édition, trois commandes sont à retenir : cat, more et less .Il suffit de les faire suivre du nom (ou du chemin) du fichier qui vous intéresse .

    -> cat affiche tout le contenu du fichier dans le terminal et vous rend la main immédiatement ;

    -> more permet de visualiser le contenu du fichier page-par-page ; on passe d’une page à l’autre à l’aide de la touche [Espace] ;

    -> less, à la différence de more, ne charge pas le fichier dans son intégralité avant de commencer à l’afficher ; c’est pourquoi il est préférable d’utiliser less plutôt que more dans le cas de gros fichiers.

    Si seul le début ou la fin d’un fichier vous intéresse, vous pouvez utiliser les commandes suivantes :

    ~# head /var/log/messages

    (affiche les 10 premières lignes du fichier /var/log/messages )

    ~# tail /var/log/messages

    (affiche les 10 dernières lignes du fichier /var/log/messages)

    Dans les deux cas, on peut utiliser l’option -n pour définir un nombre de ligne différent de 10 :

    ~# tail -n 30 /var/log/messages

    Très utile également, l’option -f (follow) qui permet de passer en mode « attente » :

    ~# tail -f /var/log/messages

    Les 10 dernières lignes du fichiers sont affichées, puis dès qu’une nouvelle donnée est inscrite dans le fichier, elle est retranscrite immédiatement à l’écran. Le raccourci [Crtl]+[C] permet de quitter ce mode et de reprendre la main.

    La commande nl permet d’afficher le contenu du fichier passé en argument en ajoutant la numérotation des lignes. Pour spécifier un séparateur d’affichage entre le numéro de la ligne et la ligne elle-même, il est possible d’utiliser l’option -s, suivie du caractère séparateur entre guillemets, comme suit :

    ~# nl -s « : » /var/log/messages | tail
    6584:Feb     5 ….
    […]
    …………..
    ……………………..
    […]

    La commande file permet de lire le début d’un fichier pour en déterminer le type de contenu ; elle nécessite bien entendu d’avoir le droit de lecture sur le fichier concerné. Exemples :

    ~$ file fichiers_video.avi
    fichiers_video.avi : RIFF …….
    [….]

    ~$ file un_document
    un_document :  ASCII text, with very long lines

    Pour la comparaison de fichiers, on retiendra les commandes cmp, et diff. La commande cmp permet de comparer le contenu de deux fichiers en précisant la position de la première différence relevée :

    ~$ cmp fichier.txt fichier2.txt
    fichiers1.txt fichier2.txt sont différents :  octet 14, ligne 3

    Comme vous vous en doutez, si la commande ne retourne rien, c’est que les deux fichiers sont rigoureusement identiques.

    La commande diff, de son coté, permet de comparer le contenu de deux fichiers ou répertoires et dresse la liste de toutes les différences relevées.

    Dans un autre registre, la commande touch permet de modifier la date d’accès et la date de modification de chaque fichier passé en argument.

    Par défaut, ces horodatages sont remplacés par la date et l’heure courantes, mais l’option -t suivie d’une date au format MMJJhhmm (mois, jour, heures, minutes) permet d’utiliser cette dernière à la place de la date courante :

    ~$ ls -l
    -rw-r–r–   1   user  user    1038819     5 nov.   16:36  mycapture

    ~$ touch -t 02162340 mycapture && ls -l
    -rw-r–r–   1   user  user    1038819     16 feb.    23:40  mycapture

    Toutes ces commandes constituent déjà un bel éventail de base pour vous entrainer à la ligne de commandes. Créez, déplacez, renommez, supprimez !
    N’hésitez pas à faire un maximum de tests jusqu’à ce que vous vous sentiez aussi à l’aise qu’en utilisant votre interfac graphique. Bientôt, celle-ci ne sera plus qu’un souvenir lointain tellement vous trouverez votre terminal bien plus rapide.
    Et là, vous vous direz, « mais pourquoi ai-je tant attendu ?! » 🙂

    Screenshot-bin-bash1.png

    ► Préparez vous bien en tout cas car dans le 4ème article, nous parlerons,créerons et exécuterons des « scripts shell« .

    Je vous dit à très vite alors ….

    logo_gnu_linux_pratique.jpg

    ❌
    ❌