Vue normale

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

[5.1] Ligne de commandes – Cinquième et dernière partie ! Un peu de tout ….[FICHIERS]

Par : LinuxFrench
28 mars 2017 à 09:44

Bonjour à tous et bienvenus pour cette « dernière » partie consacrée à la ligne de commande.

Celle-ci sera accès sur un panel de commandes utiles pour une meilleur gestion de votre système via votre terminal.

À commencer par :

Fichiers :
Comment retrouver rapidement un fichier ? Comment renommer des fichiers par lots ? Comment effacer ses données de façon sécurisée ? Comment manipuler les archives de fichiers ? Comment synchroniser ses données ? Comment manipuler des fichiers PDF ? …

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 ? …

Multimédia:
Comment graver un CD/DVD ? Comment retoucher un lot de photos en un tour de main ? Comment enregistrer son bureau pour publier un tutoriel en ligne ? Comment récupérer des vidéos sur les sites de contenus dédiés ?

Réseau :
Comment identifier et gérer ses interfaces réseaux ? Comment mettre en place une connexion SSH ? Comment visualiser un bureau à distance ? Comment partager ses fichier entre un ordinateur Linux et un autre sous Windows ? Comment automatiser la sauvegarde de ses données ?

shellshock1

01 Fichiers.

01 ) Retrouver rapidement un fichier égaré.

Mais si, cela peut arriver bien plus souvent que vous ne le pensez ! Vous créez un document, vous l’enregistrez rapidement sans vraiment regarder où … et impossible de remettre la main dessus ! Ou alors, vous souhaitez éditer le fichier de configuration d’une application, mais vous n’avez aucune idée de l’endroit où il peut être stocké. Ces quelques commandes vont vous aider à retrouver très vite ce que vous cherchez.

01Vous connaissez son nom ?

La commande locate permet de localiser instantanément n’importe quel fichier de votre disque, y compris les fichiers cachés. Pour cela, elle s’appuie sur une base de données contenant la liste de tous les fichiers et de tous les répertoires de votre disque (/var/lib/mlocate/mlocate.db).

1

Pour retrouver un fichier, on indique son nom ou une partie de son nom :

~$ locate profil
/etc/profile
/etc/profile.d
…………………..

2 - locate

Il est nécessaire de mettre régulièrement à jour la base de données utilisée par locate via la commande :

~# updatedb

On pourra penser à configurer  une mise à jour automatique de la base via cron ou anacron.

La commande find parcourt toute l’arborescence du répertoire fourni en paramètre et y recherche le fichier spécifié :

~$ find /home/user/documents -name « monFichier.txt« 

3 - find

Il est possible d’utiliser des expressions régulières pour spécifier le nom du fichier recherché. Attention, il s’agit ici d’une recherche « exacte« : une recherche du motif « monFic » ne renverra pas « monfichier.txt« .

02Vous connaissez une partie du contenu :

La commande grep (une commande que je conseil vivement de connaitre et de maitriser le plus possible) utilise les expressions régulières pour effectuer ses recherches. Elle permet de rechercher une chaîne de caractères dans des fichiers, mais elle est bien souvent utilisée pour filtrer le résultat d’autres commandes en fonction d’un motif particulier.

grep prend en paramètre la chaîne de caractères à rechercher, suivie du nom de fichier dans lequel effectuer la recherche. Par exemple, pour rechercher toutes les lignes du fichier monFichier.txt dont la première lettre est une majuscule :

~$ grep « ^[A-Z] » monFichier.txt

4 - grep

La commande grep retourne alors les lignes correspondant à la recherche demandée. Il est toutefois possible de modifier ce comportement à l’aide d’options :

-c : retourne le nombre de lignes correspondant à la recherche.

–color : affiche le motif recherché (ici le « M » majuscule) en couleur.

4.1 - grep

-n : retourne les lignes correspondant à la recherche, préfixées par leur numéro.

-f : permet de passer en paramètre un fichier contenant une liste de motifs à rechercher. Par exemple :
~$ grep -f liste monFichier.txt

-i : ignore la case dans le motif de recherche et dans le fichier.

Pour lancer la recherche sur l’ensemble des fichiers du répertoire courant, on utilisera le caractère * :

~$ grep « ^[A-Z] » *

4.2 - grep

Pour parcourir toute l’arborescence de façon récursive, on utilise aux choix l’option -r ou la commande rgrep :

~$ grep -r « ^[A-Z] » *
~$ rgrep « ^[A-Z] » *

4.3 - rgrep

03Vous avez d’autres critères de recherche ?

La commande find permet d’effectuer la recherche sur bien plus de critères que le simple nom de fichier. Par exemple, vous pouvez rechercher tous les fichiers dont la taille est supérieur à 5Mio et qui ont été modifiés il y a moins de 12 jours grâce aux options -size et -ctime :

~$ find / -size 5M -ctime 12

5 - find

Notez qu’à chaque fois qu’un fichier correspond à la recherche, il est possible d’exécuter une commande sur celui-ci avec l’option -exec ou -ok.
Imaginons que vous vouliez rechercher puis supprimer toutes les images ISO de votre répertoire personnel. Il suffit d’exécuter :

~$ find . -name « *.iso » -exec rm {} \;

La commande à exécuter (ici rm) suit directement l’option -exec ; les accolades seront remplacées par les noms de fichiers correspondant à la recherche. Le caractère ; indique que la séparation entre les commandes rm se fera à l’aide du point-virgule (notez la présence de l’anti-slash qui permet d’échapper ce caractère). L’option -ok se comporte comme -exec mais vous demande confirmation avant d’exécuter une action.

04Vous recherchez un fichier particulier ?

whereis permet de retrouver des fichiers correspondant à des commandes système (fichiers binaires, sources et pages de manuel). Par défaut, elle affiche tous les fichiers associés à une commande, comme dans cet exemple avec la commande yum :

~$ whereis yum
yum : ………………………...

6 - whereis

Pour restreindre l’affichage à certains types de fichiers, on utilise les options suivantes : –b : pour les fichiers binaires
-s : pour les sources
-m : pour les pages manuel

05Vous recherchez le nom d’un paquet logiciel ?

Lorsqu’on compile une application, il est fréquent d’obtenir un message d’erreur indiquant qu’un fichier d’une librairie est manquant… et il est toujours très pénible de rechercher le nom de la librairie à installer.

Les utilisateurs d’une distribution Debian, Ubuntu ou dérivée pourront utiliser la commande apt-file (à installer au préalable), qui fonctionne à partir d’une base de données que vous mettrez à jour en tapant :

~$ sudo apt-file update

Ensuite, vous n’aurez plus qu’à saisir la commande apt-filesearch, suivie du nom du fichier, comme dans cet exemple :

~$ apt-file search libfftw3.so.3

Le nom du paquet correspondant apparaît en début de ligne ; vous pouvez également visualiser le chemin d’installation.

Les utilisateurs de Fedora quant à eux pourront trouver le nom du paquet auquel appartient un fichier via la commande :

~$ yum provides libfftw3.so.3

La commande dpkg avec l’option -S permet également de savoir à quel paquet appartient un fichier, mais cette fois, la recherche ne concerne que les paquets déjà installés sur votre disque :

~$ dpkg -S libfftw3.so.3

7

02 ) Renommez proprement vos fichiers.

L’utilitaire detox, présent dans les dépôts logiciels de la plupart des distributions Linux, permet de « nettoyer » et convertir rapidement les noms de fichiers comportant des espaces et des caractères spéciaux, de façon à garantir leur interopérabilité.

detox est également capable de traduire les caractères Latin (ISO 8859-1), les caractères Unicode encodés en UTF-8 et les caractères échappés des chaînes CGI.

01Éditer les filtres :

Pour effectuer le « nettoyage », detox utilise plusieurs filtres, dont l’ensemble constitue une « séquence » et qui seront appliqués au fichier passé en paramètre.

Les différentes séquences disponibles sont définies dans le fichier /etc/detoxrc du système, qui sera applicable à l’ensemble des utilisateurs ; il est bien sûr possible de créer votre propre fichier de configuration, ~/.detoxrc, qui peut venir compléter le fichier principal.

On trouve dans ce fichier des séquences comme celles-ci :

~$ cat /etc/detoxrc

8 - detoxrc

On trouve également une liste de fichiers à ignorer :

8.1

La séquence nommé default est celle qui sera exécutée si vous ne spécifiez rien ; l’option -s suivie d’un nom de séquence permet d’activer les filtres correspondants.

02Exemple de renommage :

Nous allons utiliser ici la séquence defautl pour supprimer les espaces (l’option -v permet d’activer le mode « verbeux » = « voir ce qui se passe pendant…« ) :

~$ detox -v Ce\ Nom\ Comporte\ Des\ Espaces.txt

8.2.1
8.2

Puis on supprime les majuscules, avec la séquence lower :

~$ detox -s lower Ce_Nom_Comporte_Des_Espaces.txt

8.3

8.3.1

Les séquences disponibles, ainsi que les fichiers ignorés, peuvent être listés via l’option -L ; avec l’option -v, vous visualiserez les filtres qui sont utilisés dans chaque cas :

~$ detox -vL

8.4

Très utile également : l’option -n, qui permet de simuler la commande pour observer le résultat que l’on obtiendrait et l’option -r, qui active la récursivité de la commande (elle sera donc appliquée à l’ensemble des fichiers et répertoires contenus dans le répertoire passé en argument).

03 Les filtres disponibles :

Comme nous l’avons vu, dans chaque séquence sont utilisés un ou plusieurs filtre(s) parmi : safe, wipeup, lower, uncgi, utf_8, ect. La page de manuel de detoxrc nous renseigne quant à leur rôle spécifique. Ainsi, le filtre iso8859_1 traduit les caractères Latin-1 en leurs équivalents ASCII. De même, le filtre utf_8 traduit les caractères Unicode encodés en UTF-8 et le filtre uncgi traduit les caractères CGI échappés dans leurs équivalents ASCII.

Le filtre wipeup permet de s’affranchir de caractères superflus, comme un tiret double ou un underscore double, ou bien une succession de tirets et d’underscores (_-_). Tout cela sera traduit en un seul et unique tiret ou underscore.

Le filtre safe traduit les caractères susceptibles de poser un problème d’interprétation sous Unix : les caractères ` ! @ $ * \ | : ; ‘ ? / sont ainsi traduits en _ et les caractères ( ) [ ] { } traduits en .

À savoir que ces deux dernier filtres, wipeup et safe, doivent toujours être exécutés après un filtre de traduction (iso8859_1, utf_8, uncgi), afin de s’affranchir du risque d’introduire un caractère illégal dans le nom final du fichier.

Le filtre lower, vu plus haut, permet de transformer toutes les lettres majuscules en minuscules.

Le filtre max_length permet quant à lui de limiter le nombre de caractères du nom du fichier. Bien entendu, ce filtre agit en prenant soin de conserver l’extension du fichier. On pourra l’appliquer comme suit :

8.5

Ce qui donne comme résultat :

~$ detox ce_nom_est_beaucoup_trop_long.txt

8.6

03 ) Échanger plusieurs fichiers simplement en créant une archive.

Dans un souci d’économie d’espace disque ou bien pour transférer de nombreux fichier en une seule opération et en conservant l’arborescence initiale, la création d’une archive – compressé de surcroît – s’avère particulièrement utile…

01Créer une archive de fichiers :

~$ tar -cvf répertoire_à_archiver

9

Tar est le système d’archivage le plus couramment utilisé sous Linux. L’option -c (create) indique que nous créons une archive, l’option -v (verbose) active le mode verbeux (seront listés à l’écran l’ensemble des répertoires et fichiers placés dans l’archive) et l’option -f (file) introduit le nom de l’archive crée.

~$ tar -rvf mon_archive.tar répertoire_2 fichier.txt

9.1

On peut ajouter de nouveaux éléments a posteriori dans une archive existante, grâce à l’option -r et en spécifiant le ou les nouveau(x) fichier(s)/répertoire(s) à ajouter.

~$ tar -Af mon_archive.tar une_autre_archive.tar

Il est également possible d’ajouter un fichier .tar à une archive déjà crée, avec l’option -A. Ici, les fichiers contenus dans une_autre_archive.tar seront concaténés à ceux de mon_archive.tar.

~$ tar -uvf mon_archive.tar répertoire_à_archiver

L’option -u (update) permet d’ajouter uniquement les fichiers qui ont été modifiés depuis la création de l’archive. Ici, on recherche dans répertoire_à_archiver les mises à jour éventuelles, qui remplaceront alors leur ancienne version dans l’archive ; les fichiers qui n’étaient pas déjà présents dans l’archive sont eux aussi ajoutés.

(pensez à toujours créer un répertoire qui contiendra l’ensemble des fichiers et sous-répertoires de votre archive. Ainsi, lors de l’extraction, tous les fichiers seront placés dans un unique répertoire, ce qui sera beaucoup plus propre et plus pratique ! )

02Compresser une archive :

~$ tar -czvf mon_archive.tgz répertoire_à_archiver
~$ tar -cjvf mon_archive.tgz répertoire_à_archiver

Pour compresser l’archive à créer, on ajoute simplement l’option -z ou -j, selon si l’on utilise l’outil de compression gzip ou bzip2 respectivement (tous deux pré-installés sur la plupart des distributions)

(le format bzip2 est un format de compression historiquement très utilisé sous Unix, car son taux de compression est meilleur que celui de gzip (mais la compression et le décompression sont plus lentes). Toutefois, bzip2 ne compresse que les fichiers (pas les répertoires).

03Lire le contenu d’une archive :

~$ tar -tf archive.tar
~$ tar -tzvf archive.tar.gz
~$ tar -tjvf archive.tar.bz2

On utilise l’option -t, éventuellement accompagnée de l’option -z dans le cas d’une archive compressée avec bzip2. L’option -v (mode verbose) permet de visualiser à l’écran les permissions sur chacun des éléments de l’archive.

04Extraire le contenu d’une archive :

~$ tar -xf archive.tar
~$ tar -xzvf archive.tar.gz
~$ tar -xjvf archive.tar.bz2
~$ tar -xkf archive.tar

C’est l’option -x (eXtract) qui permet d’extraire le contenu d’une archive ; encore une fois, on l’accompagne si besoin de l’option -z ou -j selon l’algorithme de compression utilisé. Une autre option qui peut s’avérer utile est l’option -k (–keep-old-files) qui permet de préciser que l’on souhaite pas remplacer les fichiers existants lors de l’extraction.

05Cas du format ZIP :

~$ zip -rv mon_archive.zip répertoire_à_archiver

Il est également possible de créer une archive compressée à l’aide de la commande zip. L’option -r (recursive) implique une descente récursive dans les répertoires, l’option -v (facultative) permet comme à l’habitude de visualiser la liste des fichiers intégrés dans l’archive.

~$ zip -rvu mon_archive.zip répertoire_à_archiver

Pour ajouter des fichiers ou mettre des fichiers de l’archive, on utilise l’option -u ; on recherche ici les nouveaux fichiers et les fichiers qui ont été modifiés dans répertoire_à_archiver

~$ unzip archive.zip

La commande unzip permet de décompresser et d’extraire les fichiers contenus dans une archive .zip. À noter que l’option -e (encrypt) permet de protéger votre archive par un mot de passe lors de la création. Pour décompresser une telle archive, vous devrez bien sûr être en possession de ce mot de passe …

10 - unzip

06Cas du format 7z :

L’outil p7zip supporte de très nombreux formats d’archive et de compression ; selon les distributions, vous le trouverez dans les dépôts logiciels sous le nom p7zip, p7zip-full et p7zip-rar. Les deux premiers paquetages se différencient par le nombre de formats pris en charge et le dernier ajoute le support du format rar.

~$ 7z mon_archive répertoire_à_archiver

Pour créer une nouvelle archive, on utilise l’option a (add) suivie du nom de l’archive (l’extension .7z est ajoutée automatiquement), et des noms de fichiers/répertoires à y inclure ; la récursivité est implicite. Pour protéger l’archive par un mot de passe, on ajoute l’option -p suivie du mot de passe (qui sera demandé pour l’extraction).

~$ 7z u mon_archive.7z répertoire_à_archiver nouveau_répertoire/fichier

L’option u (update) permet d’ajouter de nouveaux fichiers et d’enregistrer les modifications effectuées sur les fichiers déjà présents dans l’archive .

~$ 7z l mon_archive.7z

L’option l (list) permet de lister le contenu de l’archive.

~$ 7z x mon_archive.7z

L’extraction des fichiers s’effectue via l’option x (extract).

07Cas du format RAR :

~$ unrar x une_archive.rar

Pour extraire le contenu d’archives .rar, on utilise la commande unrar (issue du paquet éponyme). L’extraction s’effectue via l’option x ; on listera le contenu de l’archive avec l’option l .

11 - archivze

04 ) Récupérez vos fichiers effacés !

Vous avez effacé par mégarde les photos de la carte mémoire de votre appareil ou bien formaté une partition qui contenait des données très importantes ? Inutile de pleurer toutes les larmes de votre corps, cela ne fera pas ré-apparaître vos fichiers ! PhotoRec en revanche, lui, le pourra.

12 - photorec
PhotoRec est un programme conçu à l’origine pour récupérer les photos effacées des cartes mémoire d’appareil photos (d’où son nom, de l’anglais, Photo Recovery). Aujourd’hui, il est capable de récupérer plus d »une centaine de formats de fichiers différents (images,vidéos,archives,documents…). Il fonctionne avec des disques durs, CD ROM, CompactFlash, Memory Stick, SecureDigital, SmartMedia, MicroDrive, MMC, USB Memory Drives…

PhotoRec se trouve dans les dépôts de la plupart des distributions, vous pourrez donc l’installer très facilement via votre gestionnaire de paquets habituel. On le lance tout simplement via la commande (en tant que root) :

~# photorec

13

Les options :

Paranoid : activée par défaut, permet de vérifier les fichiers récupérés ; les fichiers invalides sont rejetés. Pour récupérer davantage de JPEG fragmentés, vous pouvez activer le Brute force (qui est beaucoup plus gourmand en ressources processeur).

Allow partial last cylinder : désactivée par défaut, modifie la façon dont la géométrie du disque est déterminée (cela n’affecte que les volumes non partitionnés).

Keep corrupted files : désactivée par défaut, elle conserve les fichiers récupérés même s’ils sont endommagés.

Expert mode : désactivée par défaut, permet de forcer la taille de bloc utilise et l’offset. Sur un disque entier ou une partition reformatée, si PhotoRec retrouve peu de fichiers, vous pouvez essayer la valeur minimale que PhotoRec propose (il s’agit de la taille d’un secteur, 0 sera alors utilisé pour l’offset).

Low memory : désactivée par défaut, vient pallier le manque de mémoire éventuel de votre système (à n’utiliser qu’en cas de systèmes de fichiers très volumineux et très fragmentés).

14

01Choix du média :

Le programme commence par vous demander de séléctionner le média concerné ; vous effectuez la sélection à l’aide des touches fléchées, puis validez votre choix avec la touche [Entrée]. On choisi la carte mémoire de notre appareil, identifiée ici par /dev/sda .

02Choix de la partition :

PhotoRec dresse ensuite la liste des partitions sur le média ; choisissez celle que vous souhaitez, ou bien lancez le programme sur l’ensemble du disque (1er choix de la liste).

1516

Remarquez au bas de l’écran l’item [File Opt] : il mène à une liste de formats de fichiers. En effet, il est possible d’affiner la recherche en ne sélectionnant qu’un ou quelques format(s) de fichiers. La sélection s’effectue à l’aide de la barre d’espace. De même, l’item [Options] permet d’accéder aux diverses options du programme et éventuellement de les modifier. Retournez sur [Search], pour passer à l’étape suivante.

File options
17

Options
18

Search
19

03Système de fichiers :

Vous devez ensuite indiquer à PhotoRec dans quel type de système de fichiers se trouvent les fichiers effacés. Les systèmes de fichiers ext2 à ext4 sont traités de manière spécifique, d’où la nécessité du choix par l’utilisateur.

04Étendue de la recherche :

L’étape suivante vous invite à choisir si la recherche doit être effectuée sur toute la partition (Whole) ou bien seulement sur l’espace non alloué (Free).

20

05Stockage des fichiers :

Vous devez ensuite indiquer où PhotoRec doit stocker les fichiers retrouvés. Typiquement, on créera à cet effet un répertoire nommé « sauvegarde » ou « backup » à l’endroit de son choix. Attention : évitez de choisir ici un emplacement sur le disque qui fait justement l’objet de la recherche ! Naviguez dans l’arborescence de fichiers à l’aide des touches fléchées, puis tapez [C] lorsque votre choix est fait.

21

06Progression :

Et PhotoRec s’exécute ! Vous pouvez visualiser le temps restant estimé pour scanner le disque. Les fichiers retrouvés sont listés au fur et à mesure, classés par format, et sont stockés dans le répertoire que vous avez indiqué plus haut. Il vous suffira de le parcourir pour retrouver vos précieuses données. Notez que les noms de fichiers, eux, ne sont pas récupérés, mais avouez que c’est un moindre mal …

22

05 ) Effacer vos données de façon définitive et sécurisée.

Vous devez changer de poste de travail, ou vous séparer d’un disque dur ? Immédiatement vous pensez à toutes ces données personnelles et/ou sensibles qui traînent encore sûrement sur vos supports de stockage. Vous trouverez ici plusieurs méthodes permettant d’effacer complétement vos données sans laisser la moindre trace…

01Pourquoi faire plus compliqué que [Suppr] ?

Lorsqu’on supprime un fichier, qu’on vide la corbeille, ou qu’on formate une partition, le système signale dans la table d’allocation des fichiers que les clusters qui étaient jusque-là occupés sont désormais disponibles…Et c’est tout ! Les données, elles ne sont pas physiquement effacées. Par analogie, c’est comme si l’on supprimait un chapitre dans le sommaire d’un ouvrage, sans retirer le chapitre lui-même. Ainsi, ces données peuvent potentiellement être récupérées avec des outils appropriés…

De ce fait, le seul moyen de supprimer (pour de vrai) des données consiste à ré-écrire sur les secteurs à effacer ; on parle d’effacement « par sur-charge ».

Pourquoi une telle persistance des données ? Un disque dur est constitué d’aimants et ces derniers peuvent en quelque sorte « mémoriser » l’état antérieur du disque (du moins, une partie). On appelle cela le phénomène de rémanence. Ainsi, même si vous remplissez votre disque de zéros, il existe des techniques et outils (par exemple PhotoRec, présenté plus haut) pour accéder aux données retenues par les aimants. Ces traces résiduelles sont dues au fait que la tête d’écriture du disque n’est pas toujours parfaitement alignée sur sa piste ; elle écrit donc souvent un peu à gauche et à droite de la piste.

02Effacer un disque :

Avant de se lancer dans l’effacement d’un disque, on commence par identifier correctement le disque en question :

~# fdisk -l

24

La commande dd :
25 - dd

Issue du paquet coreutils, la commande dd (device to device) permet de copier bloc par bloc un fichier de périphérique vers un autre fichier de périphérique ou quelconque.

Pour effacer tout le disque en réinitialisant toutes les données à 0 :

~# dd if=/dev/zero of=/dev/sda

Pour effacer tout le disque en écrasant les données existantes avec les données aléatoires :

~# dd if=/dev/urandom of=/dev/sda

L’option if introduit le fichier à copier (ici /dev/zero ou /dev/urandom) et of indique le fichier résultant de la copie.

On pourra réduire le temps de chaque passe à l’aide de l’option bs, qui permet de spécifier le nombre d’octets (512 par défaut) écrits en une seule fois (par exemple, bs=1024).

Toutefois, l’utilisation de dd ne garantit pas à 100% l’effacement des données sensibles, comme nous l’avons expliqué en introduction.

La commande shred :

26 - shred

L’utilisation de la commande shred permet de contrer l’effet de rémanence ; elle consiste à écrire plusieurs fois un motif différent sur le même fichier. On pourra l’utiliser pour un fichier régulier, comme pour un fichier de périphérique.

~# shred -vfz -n 3 /dev/sda
shred: /dev/sda : passe 1/4 (random) …
shred: /dev/sda : passe 1/4
………………………………
……………………………………..

L’option -v permet, comme d’habitude, d’activer le mode verbeux. L’option -f permet de « forcer » l’opération, autrement dit, elle autorise shred à modifier les permissions du fichier si nécessaire. L’option -z écrit des zéros lors d’une dernière passe pour camoufler le déchiquetage du fichier. L’option -n introduit le nombre de passes (3 par défaut).

Attention : comme le souligne la page du manuel du programme (man shred), le déchiquetage considère que le système de fichiers écrasera les données sur place. Or, plusieurs structures de systèmes de fichiers ne remplissent pas cette condition. Ainsi, shred ne fonctionne pas (ou pas dans tous les modes) sur les systèmes suivants :

► les systèmes de fichiers journalisés ou à structure de journalisation (JFS, ReiserFS, XFS, ext3, ect).

► les systèmes de fichiers avec écriture redondante et continuant à écrire même en cas d’erreur (RAID).

► les systèmes de fichiers qui effectuent des instantanés (serveur NFS de Network Appliance).

► les systèmes de fichiers qui mettent en cache dans des dossiers temporaires (clients NFS version 3).

► les systèmes de fichiers compréssés.

On apprend ainsi que dans le cas du système ext3, très couramment utilisé sous Linux, shred sera d’une efficacité limitée dans le mode data=journal (mode dans lequel les données sont inscrites dans le journal avant d’être écrites dans le système de fichiers principal) ; en revanche, shred fonctionnera tout à fait normalement dans les modes data=ordered (le mode par défaut, dans lequel les données sont envoyées au système de fichiers avant l’écriture des métadonnées dans le journal) et data=writeback.

À savoir que le mode de journalisation d’un système ext3 peut être contrôlé en ajoutant l’option data= aux options de montage de l’arborescence dans le fichier /etc/fstab.

03Effacer un fichier sensible avec wipe :

27 - wipe

Pour effacer des fichiers réguliers de façon sécurisée, on pourra se tourner vers d’autres outils plus adaptés, wipe est l’un d’entre deux et se trouve dans les dépôts de la plupart des distributions ; on l’utilisera comme suit :

~$ wipe -r -i -q rep_à_effacer/

27 - wipe 2

L’option -r supprime l’ensemble du répertoire de façon récursive ; -i active le mode verbeux ; l’option -q permet de spécifier le nombre de passes (4 par défaut). L’option -c permet de modifier le spermissions sur les fichiers qui le nécessitent.

06 ) Synchronisez le contenu de vos fichiers ! 

Vous avez pour habitude de rapporter du travail à la maison ? Vous multipliez ainsi les versions de fichiers sans plus vous y retrouver ? Il est temps de vous organiser et d’opter pour la synchronisation de vos données …..

Unison

Le programme Unison permet de répliquer un ensemble de fichiers et/ou répertoires sur différentes machines ou différents disques de la même machine.
Compatible Unix et Windows, il permet de réaliser une synchronisation de fichiers entre ces deux types de système. Unison peut en outre être utilis pour les synchronisations à distance, via le protocole SSH.

Unison devra être installé sur chaque machine à synchroniser ; il est packagé pour la plupart des distributions. Nous distinguerons ici deux cas typiques : une synchronisation locale de deux répertoires et une synchronisation à distance.

28 - unison

01Synchronisation locale :

Imaginons que vous rentriez du travail avec votre clé USB contenant le dossier sur lequel vous avez travaillé toute la journée ; vous souhaitez synchroniser son contenu avec celui du dossier stocké sur votre ordinateur personnel, à la maison. Voici la commande à exécuter :

~$ unison -ui text /media/usbkey/rep1 /home/user/rep2 
Contacting server ……
……………………………
………………………………….

L’option -ui text utilisée ici nous permet de forcer l’utilisation en ligne de commandes d’Unison, sinon l’interface graphique se lance automatiquement (ce comportement dépend toutefois du binaire utilisé par votre distribution et vous ne serez peut être pas obligé d’utiliser cette option pour archiver le mode console).

La commande ne retourne rien pour l’instant étant donné qu’il s’agit de la première synchronisation de nos deux répertoires ; aucun changement n’est à noter.

À présent nous allons ajouter un nouveau fichier dans chacun des répertoires, puis lancer la synchronisation de ces derniers :

~$ unison -ui text /media/usbkey/rep1 /home/user/rep2
Contacting server…..
……………………………
…………………………………

Le programme liste les modifications une à une en vous demandant à chaque fois de préciser l’action à réaliser. Pour ce faire :

► la touche [f] pour follow, permet de valider la suggestion formulée par Unison (dans l’exemple ci-dessus, on valide la copie du fichier nommé file1 dans rep2) .

► les touches [<] et [>] permettent de modifier le sens de propagation.

► la touche [/] permet d’ignorer la modification et de ne rien faire.

La liste des modifications continue ainsi, jusqu’à l’exécution des actions en attente pour laquelle une confirmation vous est demandée :

Proceed with propagating updates? [] 

Plusieurs réponses sont possibles ici :

[y] ou [g] pour valider vos choix.

[n] pour revenir aux sélections.

[q] pour quitter le programme sans propager les modifications.

Si un même fichier se trouve dans chacun des répertoires, mais sous une version différente, Unison se trouve face à un conflit qu’il ne peut résoudre seul ; ceci est symbolisé par un point d’interrogation.

Par défaut, aucune action n’est réalisée et chacun demeure dans sa version d’origine.

Dans ce cas, la touche [d] permet d’afficher les différences entre les deux fichiers, [x] affiche des détails sur les fichiers (date de dernière modification, taille et permissions) et [m] permet de fusionner les fichiers.

29

02Synchronisation à distance :

Une connexion SSH doit être mise en place entre les deux machines ; chacune pourra servir à la fois de client et de serveur selon l’endroit où vous vous situez lors de la synchronisation. On veillera par ailleurs à ce que les versions d’Unison sur les deux machines concernées soient identiques (via la commande unison -version) .

Considérons une machine A sur laquelle se trouve dans votre répertoire personnel un répertoire repA, que l’on souhaite synchroniser avec un répertoire repB se trouvant sur une machine B. On utilisera une commande du type :

~$ unison repA ssh://IP_machine_distante/repB

Si repB se trouve ailleurs que dans votre répertoire personnel sur la machine distante, il faudra spécifier le chemin absolu vers ce répertoire en ajoutant un slash supplémentaire :

~$ unison repA ssh://IP_machine_distante//chemin/vers/repB

Si le nom d’utilisateur sur la machine distante n’est pas le même qu’en local, on utilisera la syntaxe :

~$ unison repA ssh://username@IP_machine_distante/repB

Il vous est alors demandé de saisir le mot de passe de la machine distante. Les modifications apparaissent quant à elles de manière tout à fait similaire au cas de la synchronisation locale.

03Créer des profils de synchronisation :

Le répertoire ~/.unison contient un fichier default.prf (vide par défaut). Ce type de fichier permet de définir des profils de synchronisation ; on peut y définir les deux chemins absolus des répertoires à synchroniser, avec la variable root.

Par exemple, si je souhaite synchroniser de façon récurrente les répertoires rep1 ou rep2 sur ma machine, je crée un fichier replocal.prf contenant :

root = /home/user/rep1
root = /home/user/rep2

Puis, pour lancer la synchronisation ultérieurement, il faudra exécuter :

~$ unison replocal

Bien entendu, un profil peut aussi contenir un chemin vers un répertoire distant, par exemple :

root = /home/user/Documents/WIP
root= ssh://IP_machine_distante/TAF/WIP

D’autres options peuvent être consignées dans un profil. Parmi les plus intéressantes :

# Pour préciser les fichiers à synchroniser (si l’on ne souhaite synchroniser qu’une partie des fichiers contenus dans l’arborescence définie pour la variable root)
path =
# Pour préciser les fichiers à ignorer lors de la synchronisation 
ignore =
# Pour accepter automatiquement les actions par défaut (en cas de modifications non conflictuelles)
auto = true
# Pour éviter toute question à l’utilisateur 
batch = true

La commande unison -help affiche l’ensemble des options disponibles.

30

07 ) Découpez, (ré)assemblez ou agrémentez vos documents PDF !

Le format PDF (Portable Document format), crée par Adobe Systems en 1993, est très largement utilisé, notamment dans un contexte professionnel, car il présente de nombreux avantages : il préserve les polices, les éléments graphiques et toute la mise en page d’un document quel que soit le logiciel utilisé pour le visualiser. Voici quelques commandes à retenir pour manipuler vos documents PDF.

01Coupez, triez, assemblez vos documents !

pdftk est souvent présenté comme le « couteau suisse » du format PDF. Et pour cause ! Il offre énormément de possibilités : fusion, découpage, rotation, chiffrement, attachement de fichiers, apposition d’un watermark, ect.

31 - pdftk

Pour fusionner plusieurs documents :

~$ pdftk doc1.pdf doc2.pdf doc3.pdf cat output fusion123.pdf

L’option cat permet de concaténer les documents passés en paramètres pour créer un nouveau PDF ; l’option output introduit le nom du document résultant. Le caractère * peut bien sûr être utilisé pour désigner l’ensemble des PDF du répertoire courant :

~$ pdftk *.pdf cat output fusion.pdf

Pour ne sélectionner que certaines pages de différents documents, puis les ré-assembler dans l’ordre spécifié dans un nouveau document :

~$ pdftk A=doc1.pdf B=doc2.pdf cat A1-3 B2-8 A5 output fusion.pdf

32 -pdftk

Nos pages demandées (3 pour le PDF 1 et 8 pour le PDF 2) ont bien été  assemblées dans un nouveau et même PDF nommé « fusion.pdf » (ce qui nous fait un total de 11 pages comme le montre l’image ci-dessous). Je sais pas pour vous si vous avez déjà essayé de modifier un PDF sous Windows, mais croyez moi, ce n’est pas aussi « simple » ….

33

Il est aussi possible de faire pivoter l’ensemble des pages d’un documents :

~$ pdftk doc.pdf cat 1-endE output doc_final.pdf

L’angle de rotation est défini par une « simple » lettre (N=0, E=90°, S=180°, W=270°, L=90, R=+90, D=+180). Notez ici l’utilisation du mot-clé end qui désigne la dernière page du document ; de même, even et odd peuvent être utilisés pour désigner respectivement les pages paires et impaires.

Pour découper un PDF en pages individuelles :

~$ pdftk doc.pdf burst

34

Normalement, nous devrions avoir notre PDF découpé en 11 pages. Allons voir ça ….

35

C’est bien le cas.  🙂

Si vous n’utilisez pas l’option output, chaque page créée sera nommé pg_0001.pdf, pg_0002.pdf, ect, comme vous pouvez le voir sur l’image ci-dessus. À vous de spécifier un format de nommage selon votre besoin.

~$ pdftk doc.pdf burst output page_%02d.pdf

02 Chiffrer un document :

Pour chiffrer un document PDF avec une clé de 128 bits (valeur par défaut), tout en conservant l’ensemble des permissions, on saisira :

~$ pdftk doc.pdf output doc_secret.pdf owner_pw

36

On ajoutera l’option allow printing en fin de ligne pour autoriser l’impression du document.

Puis, pour déchiffrer le document :

~$ pdftk doc_secret.pdf input_pw output doc.pdf

37

03 Ajouter un filigrane (watermark) :

Ceci se réalise à l’aide de l’option background, directement suivie du document comportant le filigrane (à créer).

~$ pdftk doc.pdf background mon_filigrane.pdf output doc_final.pdf

La première page du filigrane est appliquée sur chacune des pages du document d’entrée (si nécessaire, elle est redimensionnée et/ou pivotée pour s’appliquer au mieux sur le document). Notez que si le document d’entrée ne comporte pas d’arrière-plan transparent (c’est le cas des PDF générés à partir de pages scannées), l’arrière-plan ne sera pas visible ; il est alors nécessaire d’utiliser l’option stamp à la place de background.

04Agrandir un document :

pdfposter permet de répartir votre document PDF sur plusieurs pages pour en faire un poster une fois les pages assemblées.

~$ pdfposter -ma3 -pa0 doc.pdf poster.pdf

40 - pdfposter

On crée ici un poster de taille A0, constitué de pages A3, à partir d’un document PDF au format A4. L’option -m permet de définir la taille du média d’impression (A4 par défaut) : l’option -p permet de spécifier la taille du poster final. Les dimensions peuvent être exprimées de façon numérique ou via le nom du média. Pour voir la liste des différents médias :

~$ pdfposter –help-media-names

41

On peut utiliser aussi l’option -s pour spécifier un facteur de redimensionnement ; la taille du poster final sera déterminée automatiquement, inutile donc d’utiliser l’option -p simultanément :

~$ pdfposter -s4 doc.pdf poster.pdf

L’option -n permet de simuler la commande sans générer les fichiers.

05Améliorez vos présentations !

pdfcube (dans les dépôts Debian et Ubuntu) permet de visionner un fichier PDF en incluant des transittions 3D entre les pages. Pour visualiser un document PDF de cette façon :

~$ pdfcube doc.pdf

43

avant … :

42 - pdfcube

après … :

44

Votre document apparait alors en plein écran ; pour passer en mode fenêtré, utilisez la touche [F]. Les touches [A] et [C] permettent de passer d’une page à l’autre. Il est possible de programmer les transitions à l’avance, comme suit :

~$ pdfcube doc.pdf 2 5 7

Ici, le 2 signifie « entre la page 3 et 4 », le 5 signifie « entre la page 6 et 7 », ect.

Vous pourrez en outre zoomer sur les coins et le centre du document, via les touches [H], [J], [K], [L] et [Z] (pour sortir du mode zoom, il suffit d’appuyer sur la même touche). La barre d’espace vous fait passer à la page suivante avec l’effet de transition programmé ; les touches [Pg.Prèc] et [Pg.Suiv] permettent de passer à la page suivante ou précédente sans effet particulier, de même que les touches fléchées. Enfin, la touche [Échap] permet de quitter l’application.

Pour modifier les couleurs d’arrière plan (option -b) et de la face supérieure du cube (option -t) :

~$ pdfcube doc.pdf -b 0,0,0 -t 0,6,0,2,0,2

Les couleurs sont définies en valeur R.G.B (valeurs entières comprises entre 0 et 1, sans espace).

La commande wiipdf(dans les dépôts Debian et Ubuntu) permet quant à elle de contrôler la présentation d’un document PDF avec Xpdf avec une Wiimote (dépendance requise : libcwiid1). Elle prend en argument l’identifiant Bluetooth de votre Wiimote (à déterminer à l’aide de hcitool), suivi du chemin vers le fichier PDF à présenter. Pressez simultanément les boutons 1 et 2 de la télécommande pour entrer dans le mode détectable. Quand la connexion est établie, wiipdf ouvre le document dans Xpdf, en plein écran. Vous pouvez alors passer d’une page à l’autre via les boutons A et B de la Wiimote ; le bouton « HOME » permet de mettre fin à la présentation.

~$ wiipdf 00:25:A0:C0:CF:CB doc.pdf

45 - wiipdf

06Du HTML au PDF :

wkhtmltopdf est un utilitaire qui, comme son nom l’indique, sert à convertir une ou plusieurs pages(s) HTML en document PDF :

~$ wkhtmltopdf -g -l <url> doc.pdf

On génère ici un PDF en noir et blanc (option -g, pour grayscale) et en basse résolution (option -l pour lowquality). À savoir que l’option -O <orientation> permet de préciser l’orientation Portrait (par défaut) ou Landscape (paysage). On peut définir du papier via l’option -s <size> (A4 par défaut).

Linuxfrench

Voilà, nous avons terminé avec la première partie du chapitre « ligne de commandes » concernant « les fichiers« . La deuxième parties sera accès sur le « système« . 

À très vite …..

UqOi99X1

❌
❌