Terminal linux – Trucs et astuces

Améliorer votre Terminal et le bon usage de l’historique « history »

L’idée de ce modeste tuto m’est venu alors que je recherchai une commande que j’avais tapée.

En remontant les commandes avec la flèche « haut » , je ne la trouvais pas, tant de commandes et ma précipitation faisaient que je devais la passer sans m’en rendre compte.

[Ctrl]+r me renvoyait des commandes semblables que j’avais tapé, mais pas celle que je cherchais.

Avec un « find » dans l’historique ou « history | grep ma_recherche » je l’ai retrouvé, mais je me suis dit qu’il doit y avoir plus simple.

Amélioration du Shell.

Il suffit de modifier deux fichiers cachés ~/.inputrc et ~/.bashrc (dans mon cas j’ai dû créer le fichier .inputrc qui n’existait pas).

– Dans ~/.inputrc rajoutez:

"\e[A": history-search-backward
"\e[B": history-search-forward

Dans ~/.bashrc vérifiez que  » shopt -s histappend  » est bien dé-commenté et ajoutez en dessous:

PROMPT_COMMAND='history -a'

– Redémarrez votre session.

Vous n’aurez plus qu’à taper un début de commande déjà utilisée et de vous servir des flèches [haut] et [bas] pour naviguer dans l’historique correspondant.

– Meilleure gestion de l’historique Bash – history

$ echo $HISTSIZE
1000

Le nombre maximum de commandes retrouvé lors de l’appel de la commande history, ici la valeur par défaut est 1000.

$ echo $HISTFILESIZE
2000

Le nombre maximum de lignes contenu dans le fichier d’historique, ici la valeur par défaut est 2000.

– On peut modifier ces valeurs toujours dans le fichier ~/.bashrc

$ vi /home/pedro/.bashrc
(…)
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
(…)

Voyons maintenant la commande history qui doit remonter les X dernières commande :

$ history
(…)
62  sudo mount /dev/mapper/test /test
63  touch /test/fichier_vide
64  sudo touch /test/fichier_vide
65  ls
66  ls /test/
67  sudo umount /test
68  sudo cryptsetup remove test
69  sudo cryptsetup --cipher=aes-xts-plain64 -s 512 create test /test/sdb3
70  sudo fdisk -l
(…)

– Si je souhaite relancer la commande 70

$ !70

– Relancer la dernière commande:

$ !!

– Pour vider l’historique:

$ history -c

Sécuriser un accès ssh sur un serveur

L’idée de départ était de modifier le port d’écoute du ssh (Secure SHell) « port 22 » pour mettre, par exemple, 6721 et interdire la connexion en « root », soit:

vi /etc/ssh/sshd_config

Et modifier les 2 linges suivantes « Port 22 » et « PermitRootLogin yes » comme suit:

Port 6721
PermitRootLogin no

Vous pouvez vérifier avec la commande suivante:

grep Port /etc/ssh/sshd_config
#Port 22
Port 6721

Un ami, Emile C., pour ne pas le nommé m’a dit:

puisque tu te connectes toujours du même pc local et du même pc distant, pourquoi ne ferais-tu pas un double ssh avec restriction sur ip?

C’est donc parti pour un double ssh.

– On va créer un lien symbolique appelé « sshd_exterieur »
– Créer un fichier de configuration appelé « sshd_config_exterieur »
– Modifier ce fichier de configuration.

ln -s /usr/sbin/sshd /usr/sbin/sshd_exterieur
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_exterieur
vi /etc/ssh/sshd_config_exterieur

Mettre le port à 6722 et « UsePAM no »
Voyons les différences entre les deux fichiers:

sdiff -s sshd_config sshd_config_exterieur
Port 6721 | Port 6722
UsePAM yes | UsePAM no

pour un démarrage lors du boot! Dans /etc/rc.local ajouter ceci :

/usr/sbin/sshd_exterieur -f /etc/ssh/sshd_config_exterieur 2>&1

Modifiez votre iptables pour accepter les deux connexions.

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6721 --source 192.168.1.21 -j ACCEPT #adaptez avec votre ip locale
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6722 --source 88.224.XXX.XX -j ACCEPT #adaptez avec votre ip distante

– Ajouter un service sshd_exterieur surveillé par logwatch tous les jours :

/usr/share/logwatch/default.conf/services/sshd_exterieur.conf
/usr/share/logwatch/scripts/services/sshd_exterieur

– Rebootez votre serveur et vérifier avec la commande suivante:

ps -ef | grep sshd | grep -v grep

Pensez aussi à modifier votre routeur! 🙂
Merci Emile C.!

Fail2ban – Bloquer les requetes phpmyAdmin w00tw00t et dos avec mod_evasive

Fail2ban ou comment bloquer les requêtes phpmyAdmin w00tw00t et dos avec mod_evasive

Élément essentiel pour sécuriser son serveur, Fail2ban permet d’éviter des intrusions via force-brute. Il se charge d’analyser les logs des services installés et bannit automatiquement et pour une durée déterminée un hôte via iptables en cas d’échecs de connexion après X tentatives.

Installer Fail2ban:

sudo apt-get install fail2ban

Par défaut, Fail2ban propose déjà plusieurs filtres pré-configurés. On retrouve les filtres dans « /etc/fail2ban/filter.d/ ».
Le fichier de configuration où l’on peut spécifier pour chaque filtre le nombre d’essai avant le bannissement et le temps de bannissement, est: /etc/fail2ban/jail.conf

En plus des filtres existants, on peut ajouter des filtres pour se protéger des requêtes excessives sur phpmyadmin ainsi que bloquer les attaques w00tw00t (fruit d’un logiciel de scanning « DFind » utilisé par des kiddies) et DOS et autres, ici, nous verrons les 3 que je viens de citer.

1 – Fail2ban contre les attaques sur phpmyadmin
Créez un nouveau filtre dans « /etc/fail2ban/filter.d »

sudo nano /etc/fail2ban/filter.d/apache-phpmyadmin.conf

et copiez:

[Definition]
docroot = /var/www
badadmin = PMA|phpmyadmin|myadmin|mysql|mysqladmin|sqladmin|mypma|admin|xampp|mysqldb|mydb|db|pmadb|phpmyadmin1|phpmyadmin2|administrator|d$
failregex = [[]client <HOST>[]] File does not exist: %(docroot)s/(?:%(badadmin)s)
ignoreregex =

Et enregistrez.
Dans le fichier /etc/fail2ban/jail.conf ajoutez à la fin:

[apache-phpmyadmin]
enabled = true
port = http,https
filter = apache-phpmyadmin
logpath = /var/log/apache*/*error.log
maxretry = 3

2 – Fail2ban et protection contre les requêtes w00tw00t

sudo nano /etc/fail2ban/filter.d/apache-w00tw00t.conf

Copiez:

[Definition]
failregex = ^<HOST> -.*"GET \/w00tw00t\.at\.ISC\.SANS\.DFind\:\).*".*
ignoreregex =

Dans /etc/fail2ban/jail.conf copiez:

[apache-w00tw00t]
enabled = true
port = 80,443
action = %(action_mwl)s
filter = apache-w00tw00t
logpath = /var/log/apache*/*error.log
maxretry = 1

3 – Fail2ban contre les DOS avec mod_evasive (source Linux magazine, hors-série N°66)
Installation mod_evasive


sudo apt-get install libapache2-mod-evasive

Créer un répertoire pour stocker les informations liées aux attaques et préciser les propriétés du répertoire.

sudo mkdir /var/log/apache2/mod_evasive
sudo chown www-data.www-data /var/log/apache2/mod_evasive

Configurer apache

sudo nano /etc/apache2/conf.d/evasive

et collez:

DOSHashTableSize 3097
# pas plus de 5 pages toutes les 2 secondes
DOSPageCount 5
DOSPageInterval 2
# Pas plus de 100 requête par seconde (image, CSS…)
DOSSiteCount 100
DOSSiteInterval 1
# Bloquer le client pendant 10 secondes
DOSBlockingPeriod 10
# Dossier contenantles IP blacklistées
DOSLogDir "/var/log/apache2/mod_evasive"

Puis recharger la configuration

sudo service apache2 reload

Créez le filtre

sudo nano /etc/fail2ban/filter.d/apache-modevasive.conf

copiez:

[Definition]
failregex = ^\[[^\]]*\]\s+\[error\]\s+\[client <HOST>\] client denied by server configuration:\s
ignoreregex =

Dans /etc/fail2ban/jail.conf copiez:

[apache-modevasive]
enabled = true
filter&nbsp; = apache-modevasive
action = iptables-allports[name=apache-modevasive]
logpath = /var/log/apache*/*error.log
bantime = 60
bantime = 3600
maxretry = 10

FIN.
Si vous avez d’autres suggestions ou améliorations, je suis preneur…

https sur serveur Ubuntu facile

Comment créer un accès https sur un serveur Ubuntu 12.04.

Il s’agit d’un serveur LAMP (Linux, apache, Mysql, Php) ou autres…

Rapide, simple et efficace.

On active le module ssl, si ce n’est pas fait.

sudo a2enmod ssl

On redémarre apache:

sudo /etc/init.d/apache2 restart

ou

sudo service apache2 restart

Nous avons besoin de créer un nouveau répertoire dans lequel nous allons stocker la clé serveur et le certificat.
Créons un répertoire « ssl » sous /etc/
Puis un répertoire du nom de domaine, ex. « mon_serveur.fr » sous /etc/ssl/

sudo mkdir /etc/ssl
sudo mkdir /etc/ssl/mon_serveur.fr

Créez un certificat auto-signé « SSL »

Lorsque qu’on crée un nouveau certificat, nous pouvons spécifier combien de temps le certificat reste valide en mettant par exemple 365… Le certificat expire après un an… Ce qui semble logique 😉

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/mon_serveur.fr/mon_serveur.key -out /etc/ssl/mon_serveur.fr/mon_serveur.crt

Avec cette commande, nous allons à la fois créer un certificat SSL auto-signé ainsi que la clé sous le nouveau répertoire (/etc/ssl/mon_serveur.fr/).

Cette commande vous demandera un certain nombre de renseignements à remplir…

La ligne la plus importante est « Common Name (e.g. server FQDN or YOUR name) []: ». Entrez votre nom de domaine officiel ici ou, si vous n’en avez pas encore, l’adresse IP de votre site.

Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:IdF
Locality Name (eg, city) []:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]:mon_serveur
Organizational Unit Name (eg, section) []:mon_serveur
Common Name (e.g. server FQDN or YOUR name) []:mon_serveur.fr
Email Address []:votre_adresse@fai.fr

Maintenant, nous avons tous les éléments nécessaires pour terminer la prochaine étape est de mettre en place le serveur virtuel pour afficher le nouveau certificat.

Ouvrez le fichier de configuration de SSL:

sudo nano /etc/apache2/sites-available/default-ssl

Sur « ServerAdmin » mettez cotre mail
En dessous, rajouter la ligne:
« ServerName votre-serveur.fr:443 »
comme exemple ci-dessous

ServerAdmin votre_adresse@fai.fr
ServerName mon_serveur.fr:443

Rechercher les lignes ci-dessous et adaptez-les à votre configuration, dans notre exemple:

SSLEngine on
SSLCertificateFile /etc/ssl/mon_serveur.fr/mon_serveur.crt
SSLCertificateKeyFile /etc/ssl/mon_serveur.fr/mon_serveur.key

Sauvez et quittez.
Activez le nouveau site virtuel « Virtual host »

sudo a2ensite default-ssl

Redémarrez le serveur:

sudo /etc/init.d/apache2 restart

ou

sudo service apache2 restart

Dans votre navigateur, tapez « https://votre-adresse » et vous serez en mesure de voir le nouveau certificat.

En cas de problème, on peut tester avec la commande suivante

curl -kv https://votreserveur.fr

Suivre son serveur avec Logwatch

Regardez vos logs avec logwatch.

Installer et configurer Logwatch

Pourquoi plutôt logwatch qu’une autre application de surveillance?

Je trouve logwatch très explicite, facile à configurer, simple et agréable à lire, il livre les logs bien structurés sous forme de chapitres, bref, pas besoin d’être un pro de la sécurité pour déchiffrer les logs… Qu’on peut recevoir par mail.

Logwatch sur ubuntu 14.04 server

Première chose à faire, vérifier que votre serveur peut vous envoyer un mail.

$ echo Contenu du message | mail -s "Sujet du mail" votremail@fai.fr

Supposons que vous avez bien reçu le mail… Tout va bien, on continue.

$ sudo apt-get install logwatch

Avant de configurer, faire une copie du fichier « logwatch.conf » dans /etc/logwatch/conf/

$ sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

Ensuite, ouvrez le fichier de configuration avec VIm, pour faire pro, ou comme moi avec « nano »

$ sudo nano /etc/logwatch/conf/logwatch.conf

garder en mémoire la ligne 30 et modifier les lignes 35 (mettre « mail »), 44 (votre mail) et 77 (précision des informations traitées) comme suit :

29 # You can override the default temp directory (/tmp) here
30 TmpDir = /var/cache/logwatch
35 Output = "mail"
44 MailTo = votremail@fai.fr
77 Detail = 10

Vérifier que le dossier logwatch existe dans /var/ (vu ligne 30) sinon le créer.

$ sudo cd /var/cache/
$ ls
$ sudo mkdir logwatch

Faire un test avec la commande :

$ sudo logwatch –range=Today

Normalement, c’est fini et doit bien fonctionner !
N’hésitez pas à commenter pour apporter des précisions ou pour vos remarques.

Supprimer les métadonnées EXIF avec exiv2

Supprimer les métadonnées exif d’une photo ou image.

Si les métadonnées exif, et leur enrichissement peuvent être d’une grande utilité, sachez aussi vous en méfier.

En effet, pour des raisons professionnelles ou pour la gestion de photos à titre personnel, les données EXIF ont toutes leurs raisons d’être et sont une véritable richesse.

Par contre, si vous publier vos photos sur un quelconque site internet, dans la majeure partie des cas, pour des raisons de préserver votre vie privée, les métadonnées EXIF n’ont pas d’intérêt.

Pour les supprimer avec exiv2, rien de plus simple.

$ exiv2 -d a photo.jpg

En suivant les liens plus bas, vous saurez comment intégrer cette commande dans une boucle pour procéder par lot.
Pour l’anecdote avec un peu d’humour (c’était en 2012) :
Le pirate w0rmer & CabinCr3w a publié sur Twitter depuis son smartphone, deux photos, l’une du décolleté de sa petite amie, l’autre de son fessier moulé dans un short… Les métadonnées de ses images ont permis au FBI de le confondre…
Pour en savoir plus sur les métadonnées EXIF :
Métadonnées EXIF d’une photo
Renommer les photos par lot en utilisant les métadonnées EXIF
Modifier les métadonnées EXIF de ses photos
Modifier la date de vos photos
Ajouter les coordonnées GPS dans EXIF avec exiv2

Vous pouvez aussi changer le nom de fichier de vos photos sans utiliser les métadonnées EXIF
Renommer les photos sans utiliser les métadonnées Exif

Récupérer des images ou fichiers effacés avec PhotoRec

Récupérer des images ou fichiers effacés avec PhotoRec

Je refais mon article que j’avais déjà publié le 23 octobre 2010 sur mon autre blog.

Pour ce billet, j’ai refait l’expérience en mettant une carte SD d’un de nos appareils photos.
Toujours aussi MAGIQUE! car j’ai récupéré 334 éléments dont une grande majorité de photos et vidéos dont certaines remontent à 2012.

Mettre sa carte SD sur le lecteur multi carte de son PC, ou brancher son appareil photo muni de sa carte.

Pour la récupération, nous allons utiliser PhotoRec, s’il n’est pas installé, vous le trouverez dans pakage « testdisk » qui doit être installé.

sudo apt-get install testdisk

Sur un terminal regardons où est monté la carte SD avec la commande « mount ».
La ligne qui m’intéresse, entre autres, est la suivante:

/dev/sdc1 on /media/sima78/disk type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2)

Ma carte « /dev/sdc1 » est monté sur « /media/sima78/disk » son type de fichier est « fat »
On crée un répertoire où seront misent les photos récupérées.

cd Bureau/
mkdir recup

Puis on lance l’application « photorec » avec les droits administrateur, le résultat doit être quelque chose de ressemblant à:

$ sudo photorec
PhotoRec 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <grenier[at]cgsecurity[point]org>
http://www.cgsecurity.org
  PhotoRec is free software, and
comes with ABSOLUTELY NO WARRANTY.
Select a media (use Arrow keys, then press Enter):
>Disk /dev/sda - 160 GB / 149 GiB (RO) - ST3160815AS
 Disk /dev/sdb - 1000 GB / 931 GiB (RO) - ST1000DM003-1CH162
 Disk /dev/sdc - 1948 MB / 1858 MiB (RO) - Generic- SD/MMC
 Disk /dev/mapper/mvg-donnees - 751 GB / 700 GiB (RO) - ST1000DM003-1CH162
 Disk /dev/mapper/mvg-save - 248 GB / 231 GiB (RO) - ST1000DM003-1CH162
 Disk /dev/mapper/ubuntu--vg-root - 155 GB / 145 GiB (RO) - ST3160815AS
 Disk /dev/mapper/ubuntu--vg-swap_1 - 4026 MB / 3840 MiB (RO) - ST3160815AS
 Disk /dev/dm-0 - 751 GB / 700 GiB (RO) - ST1000DM003-1CH162
 Disk /dev/dm-1 - 248 GB / 231 GiB (RO) - ST1000DM003-1CH162
 Disk /dev/dm-2 - 155 GB / 145 GiB (RO) - ST3160815AS
>[Previous]  [  Next  ]  [Proceed ]  [  Quit  ]
Note:
Disk capacity must be correctly detected for a successful recovery.
If a disk listed above has incorrect size, check HD jumper settings, BIOS
detection, and install the latest OS patches and disk drivers.

Je choisis donc:
Disk /dev/sdc – 1948 MB / 1858 MiB (RO) – Generic- SD/MMC
Qui correspond à ma carte sd et valide [Proceed ]

A la fenêtre suivante il suffit de faire [ Search ]

PhotoRec 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <grenier[at]cgsecurity[point]org>
http://www.cgsecurity.org
Disk /dev/sdc - 1948 MB / 1858 MiB (RO) - Generic- SD/MMC
     Partition                  Start        End    Size in sectors
      No partition             0   0  1  1022  53 58    3805184 [Whole disk]
> 1 P FAT16 >32M               0   2 18  1022  53 58    3805043 [NO NAME]
>[ Search ]  [Options ]  [File Opt]  [  Quit  ]
                              Start file recovery

Si avant la fenêtre ci-dessus vous tombez sur une fenêtre ressemblant à celle ci-dessous,

PhotoRec 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <grenier[at]cgsecurity[point]org>
http://www.cgsecurity.org
Disk /dev/sde - 1030 MB / 982 MiB (RO) - Generic 2.0 Reader-SD
Please select the partition table type, press Enter when done.
[Intel  ]  Intel/PC partition
[EFI GPT]  EFI GPT partition map (Mac i386, some x86_64...)
[Mac    ]  Apple partition map
[None   ]  Non partitioned media
[Sun    ]  Sun Solaris partition
[XBox   ]  XBox partition
[Return ]  Return to disk selection
sima@stepstep:~/Bureau
Note: Do NOT select 'None' for media with only a single partition. It's very
rare for a drive to be 'Non-partitioned'.
Il suffit de choisir [Intel  ]

A la fenêtre suivante:

PhotoRec 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <grenier[at]cgsecurity[point]org>
http://www.cgsecurity.org
 1 P FAT16 >32M               0   2 18  1022  53 58    3805043 [NO NAME]

Faire Entrée puis à:

To recover lost files, PhotoRec need to know the filesystem type where the
file were stored:
 [ ext2/ext3 ] ext2/ext3/ext4 filesystem
>[ Other     ] FAT/NTFS/HFS+/ReiserFS/...

Choisir [ Other     ] et à la suivante:

PhotoRec 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <grenier[at]cgsecurity[point]org>
http://www.cgsecurity.org
 1 P FAT16 >32M               0   2 18  1022  53 58    3805043 [NO NAME]
Please choose if all space need to be analysed:
>[   Free    ] Scan for files from FAT16 unallocated space only
 [   Whole   ] Extract files from whole partition

Choisir [   Free    ]
Dans celle ci-dessous, il suffit de choisir le dossier où seront stockées les photos ou fichiers récupérés.
Au début du billet nous avons proposé Bureau/recup/

Il suffi de le sélectionner.

PhotoRec 6.14, Data Recovery Utility, July 2013
Please select a destination to save the recovered files.
Do not choose to write the files to the same partition they were stored on.
Keys: Arrow keys to select another directory
      C when the destination is correct
      Q to quit
Directory /home/sima78
>drwx------  1000  1000     20480  8-May-2015 17:23 .
 drwxr-xr-x     0     0      4096 24-Oct-2014 18:11 ..
 drwxr-xr-x  1000  1000      4096  8-May-2015 15:46 Bureau
 drwxr-xr-x  1000  1000     12288 26-Apr-2015 08:22 Documents
 drwxr-xr-x  1000  1000     12288 20-Dec-2014 09:19 Images
 drwxr-xr-x  1000  1000      4096 24-Oct-2014 17:27 Modèles
 drwxr-xr-x  1000  1000      4096  2-Dec-2014 21:35 Musique
 drwxr-xr-x  1000  1000      4096 23-Nov-2014 08:14 Public
 drwxr-xr-x  1000  1000     40960  8-May-2015 14:48 Téléchargements
 drwxr-xr-x  1000  1000      4096 12-Jan-2015 18:14 Vidéos
PhotoRec 6.14, Data Recovery Utility, July 2013
Please select a destination to save the recovered files.
Do not choose to write the files to the same partition they were stored on.
Keys: Arrow keys to select another directory
      C when the destination is correct
      Q to quit
Directory /home/sima78/Bureau
>drwxr-xr-x  1000  1000      4096  8-May-2015 15:46 .
 drwx------  1000  1000     20480  8-May-2015 17:23 ..
 drwxrwxr-x  1000  1000      4096 22-Feb-2015 19:36 Nouveau dossier
 drwxrwxr-x  1000  1000     12288 23-Apr-2015 20:57 phatch
 drwxrwxr-x  1000  1000      4096  8-May-2015 16:44 recup
PhotoRec 6.14, Data Recovery Utility, July 2013
Please select a destination to save the recovered files.
Do not choose to write the files to the same partition they were stored on.
Keys: Arrow keys to select another directory
      C when the destination is correct
      Q to quit
Directory /home/sima78/Bureau/recup
>drwxrwxr-x  1000  1000      4096  8-May-2015 16:44 .
 drwxr-xr-x  1000  1000      4096  8-May-2015 15:46 ..
Quand on est enfin dans le répartoire choisi on valide en tapant C

Sur l’image ci-dessous on voit qu’au bout de seulement quelques secondes on à récupéré:
173 jpg
38 riff
6 tx?
2txt

Résultat final:

PhotoRec 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <grenier[at]cgsecurity[point]org>
http://www.cgsecurity.org
Disk /dev/sdc - 1948 MB / 1858 MiB (RO) - Generic- SD/MMC
     Partition                  Start        End    Size in sectors
 1 P FAT16 >32M               0   2 18  1022  53 58    3805043 [NO NAME]
334 files saved in /home/sima78/Bureau/recup/recup_dir directory.
Recovery completed.
You are welcome to donate to support further development and encouragement
http://www.cgsecurity.org/wiki/Donation
[ Quit ]

Sources :
PhotoRec
Leur faire un don! Un don pour soutenir le développement et l’encouragement sera le bienvenu !

Modifier la date de vos photos

Modifier la date de vos photos sous linux en ligne de commande.

Votre appareil est resté longtemps sans ses piles, vous en avez mis des neuves, et pris des photo sans remettre votre appareil à la bonne date et heure…

Vous allez donc devoir…

Modifier la date sur le fichier EXIF de vos photos.

Mettez vos clichés à modifier dans un répertoire.

Voyez la suite….

Ouvrez un shell et vérifiez le contenu du répertoire avec la commande « ls ».

$ ls
DSCN3449.JPG  DSCN3450.JPG  DSCN3451.JPG  DSCN3452.JPG  DSCN3453.JPG  DSCN3454.JPG  DSCN3455.JPG  DSCN3456.JPG

Vérifiez la date d’une des images du répertoire avec « exiv2 image.jpg »

$ exiv2 DSCN3449.JPG
Nom du fichier        : DSCN3449.JPG
Taille du fichier     : 1230426 Octets
Type MIME             : image/jpeg
Taille de l'image     : 2304 x 3072
Marque de l'appareil  : NIKON
Modèle de l'appareil  : COOLPIX L12
Horodatage de l'image : 2010:05:02 05:32:43
Numéro de l'image     : 
Temps d'exposition    : 1/469 s
Ouverture             : F2.8

La date affiche 02/05/2010 à 05:32:43 alors que l’image a été prise (supposons) le 01/05/2012 à entre 14h et 15h.
Nous allons modifier la ligne « Horodatage de l’image: 2010:05:02 05:32:43 » en ligne de commande. Plusieurs champs peuvent intervenir pour l’affichage de l’heure, on peut vérifier avec la ligne suivante:
exiv2 -p v DSCN3449.JPG | grep DateTime

$ exiv2 -p v DSCN3449.JPG | grep DateTime
0x0132 Image    DateTime             Ascii   20  2010:05:02 05:32:43
0x9003 Photo    DateTimeOriginal     Ascii   20  2010:05:02 05:32:43
0x9004 Photo    DateTimeDigitized    Ascii   20  2010:05:02 05:32:43

Il y a donc trois champs à modifier.
On peut déjà modifier la première photo en trois ligne avec la commande « exiv2 » et l’option « -Mset »

$ exiv2 -M"set Exif.Image.DateTime 2012:05:01 14:32:43" DSCN3449.JPG
$ exiv2 -M"set Exif.Photo.DateTimeOriginal 2012:05:01 14:32:43" DSCN3449.JPG
$ exiv2 -M"set Exif.Photo.DateTimeDigitized 2012:05:01 14:32:43" DSCN3449.JPG

Oui, mais si vous avez plusieurs photos cela risque de devenir très vite fastidieux, l’idéal est de trouver la bonne boucle à faire.
Déplacez l’image que vous venez de modifier pour éviter que les changements lui soient appliqués.
Faire une modification de date dans une boucle, c’est risquer de se retrouver avec tous les clichés à la même date, à la seconde près. A moins de faire un script assez complexe.
Nous allons nous simplifier la tâche en ajustant l’heure. L’option « ad » de la commande « exiv2 » permet l’ajustement de cette donnée en ajoutant ou retirant des tranches de temps. En fait, il faudra préciser le nombre d’années, mois, jours et heures de décalage.

Dans un premier temps nous allons chercher l’intervalle entre la date du cliché et celui de la prise de vue, soit (01/05/2012 14:32 – 02/05/2010 05:32).

Vous pouvez utiliser un tableur ou un calculateur en ligne.
Résultat: 1 year, 11 months, 29 days, 9 hours
Une fois le décalage évalué, on va l’appliquer avec « exiv2 », donc ajouter 1 ans, 11 mois, 29 jours, 9 heures et 00 minutes, il suffit d’exécuter:
« exiv2 -a 9:00 -Y 1 -O 11 -D 29 ad image.jpg »
Mais nous allons l’introduire dans une boucle « For Do Done »

$ for i in *; do exiv2 -a 9:00 -Y 1 -O 11 -D 29 ad $i;done

Vérifions sur une des images:

$ exiv2 -p v DSCN3452.JPG | grep DateTime
0x0132 Image    DateTime            Ascii   20  2012:05:01 14:36:22
0x9003 Photo    DateTimeOriginal    Ascii   20  2012:05:01 14:36:22
0x9004 Photo    DateTimeDigitized   Ascii   20  2012:05:01 14:36:22

Réussi !
Maintenant vous pouvez renommer vos photos en utilisant la date et heure du fichier exif.

Kclean ou comment supprimer les anciens noyaux

kclean ou comment supprimer des anciens noyaux

Comme tous les articles jusqu’à cette date, c’est encore du réchauffé, mais vous remarquerez à la version des noyaux que j’ai refait le test pour ce billet…

Lors des successives mises à jour, les nouveaux noyaux viennent s’installer et s’ajouter aux anciens. J’utilise au boulot une version Ubuntu LTS, le nombre de noyaux depuis avril 2010 commence sérieusement à prendre de la place.

Hoper m’a parlé de son script permettant d’éliminer proprement les anciens noyaux en toute simplicité, j’ai donc décidé de vous faire découvrir.

J’ai fait le choix de la faire en ligne de commande, mais on a la possibilité de le lancer en mode graphique.
Voyons la place que prend la totalité de mes noyaux:

$ sudo du -h /boot
[sudo] password for sima78:
/boot/grub/locale
4,4M
/boot/grub171M
/boot

Donc 171 Méga pour le répertoire /boot\r\n

Les options de la commande Kclean:

$ sudo ./kcleaner.sh -k
[sudo] password for sima78: 

Noyau actuellement en cours d'utilisation : 3.13.0-51
Par defaut, seul ce noyau est conserve. 

Ce script va tenter de trouver la version precedente du noyau pour la conserver.
Verifiez les informations fournies avant de valider la suppression.

La version precedemment installee (a conserver) est la version : 3.13.0-49
Les paquets suivants vont etre supprimes :

    linux-image-3.13.0-46-generic
    linux-image-3.13.0-48-generic
    linux-image-extra-3.13.0-46-generic
    linux-image-extra-3.13.0-48-generic
    linux-headers-3.13.0-46
    linux-headers-3.13.0-46-generic
    linux-headers-3.13.0-48
    linux-headers-3.13.0-48-generic

Cela devrait liberer environ 516 MiB d'espace disque

 Voulez vous indiquer manuellement des paquets à conserver ? [o/N] :n
 Voulez vous supprimer l'ensemble des paquets indiques ? [o/N] :o

 Suppression en cours :
(...) ---> là vous allez voir un tas ligne défiler, le travail va
           se lister jusqu'à arriver à:
 -------------- Suppression effectuee ---------------
$
$ sudo du -h /boot
48K    /boot/grub/locale
4,4M    /boot/grub
33M    /boot

171M – 33M = 138 méga supprimés et très proprement, car je suis en dualboot avec une version X -1 de ubuntu LTS et le script n’a pas touché aux lignes de lancement de la version X -1 dans le fichier Grub, mais a bien supprimé les autres.

En savoir plus et se procurer kclean.

Ubuntu 14.04 – Mixxx et Hercules Dj Console MK2

Installer et configurer Mixxx connecté avec une table de mixage Hercules Dj Console MK2.

Mixxx est une interface graphique de mixage pour DJ’s et un émulateur de vinyles.
Plus de détails le site de LinuxMao

Hercules Dj console mk2 est une table de mixage avec carte son intégrée, elle se connecte directement au pc via un câble usb et est équipée d’une sortie casque pour la pré-écoute, deux sorties enceintes/ampli, d’une entrée micro, deux entrées (line-in/phono-in pour mixer de l’audio analogique).

En haut: screenshot de Mixxx et en dessous photo du dessus de la table de mixage Hercule-DJ
Vue de Mixxx et la table de mixage Hercule-DJ

Installation de Mixxx
Afin d’obtenir la dernière version et les mises à jours les plus récentes il faut installer les dépôts officiels :

$ sudo add-apt-repository ppa:mixxx/mixxx && sudo apt-get update

Installation :

$ sudo apt-get install mixxx libportaudio2

et lancer avec la commande « mixxx » ou en cliquant sur l’icone mixxx (Menu –-> Multimédia –-> mixxx)

$ mixxx

Installer le pilotes Hercules
Afin d’obtenir la dernière version et les mises à jours les plus récentes il faut installer les dépôts officiels :

sudo apt-add-repository ppa:rojtberg/hdjmod && sudo apt-get update

Installation

sudo apt-get install hdjmod-dkms

Débranchez et rebranchez votre DJ Console Hercules mk2.

Face arrière de la table de mixage Hercule-DJ
Face arrière de la table de mixage Hercule-DJ

 

 

Face avant de la table de mixage Hercule-DJ
Face avant de la table de mixage Hercule-DJ

Configurer Mixxx pour avoir la main sur la table de mixage Hercules Dj console mk2:
Aller dans Options/Préférences/Carte Son dans:
L’onglet « Sortie » sur « Principale » choisir la carte son Hercules… et Canaux 1 – 2 Dans « Casque » choisir la carte son Hercules… et Canaux 3 – 4 Voir image ci-dessous:

Screenshot du panneau de configuration pour les contrôleur des sorties
Screenshot du panneau de configuration pour les contrôleur des sorties

L’onglet « Entrée » sur « Microphone » choisir la carte son Hercules… et Canal 1 (si cela ne fonctionne pas essayer les autres canaux) Voir image ci-dessous:

 

Screenshot du panneau de configuration pour le micro
Screenshot du panneau de configuration pour le micro

Dans la partie « Contrôleurs » activer la carte… et Appliquer ! Ceci-dit, si vous n’utilisez pas Midi, vous pouvez passer outre. Voir image ci-dessous:

 

Screenshot du panneau de configuration pour la reconnaissance de la table de mixage.
Screenshot du panneau de configuration pour la reconnaissance de la table de mixage.

Et tout devrait bien fonctionner….