Récupérer sa liste de TAG Shazam

Le store Amazon a proposé récemment quelques logiciels habituellement payants gratuitement. J’ai donc profité de cette occasion pour récupérer Shazam Encore, la version non bridée de Shazam. Cependant, étant deux applications différentes, la liste des titres que j’avais précédemment « Shazamés » n’est pas transférée. N’ayant plus un téléphone rooté pour l’instant, j’ai décidé de m’en passer mais il est possible de tout transférer en suivant cette procédure :

A l’aide de son téléphone rooté (obligatoire pour accéder à ce fichier), il faut prendre le fichier library.db situé à l’emplacement : /data/data/com.shazam.android/databases/

On peut ensuite le déposer dans le dossier de base de données de Shazam Encore situé en : /data/data/com.shazam.encore/databases/

On peut aussi vouloir récupérer sa liste de TAG pour l’exploiter sur son PC. Le site Arcane Sanctum a déjà fait un tuto très bien expliqué sur la question. Il est disponible à cette adresse : http://arcanesanctum.net/2012/07/11/how-to-dump-the-android-shazam-tag-list-database-to-a-readable-file/

Exécuter TrueCrypt sous Fedora

TrueCrypt demande systématiquement les privilèges super-utilisateur. Je tentais donc toujours, dans le doute, de la lancer en root. Malgré cela, lorsque j’essayais de monter un volume crypté, j’obtenais l’erreur :

Failed to obtain administrator privileges: sudo: sorry, you must have a tty to run sudo

To enable use of ‘sudo’ by applications without a terminal window, please disable ‘requiretty’ option in ‘/etc/sudoers’. Newer versions of sudo automatically determine whether a terminal is required (‘requiretty’ option is obsolete).

TrueCrypt donne ainsi lui même la solution pour résoudre le problème. Il suffit d’aller commenter la ligne contenant requiretty dans le fichier /etc/sudoers (à l’aide de #).

D’autres solutions sont cependant disponibles sur Internet notamment celles ci :
http://linuxsysadminblog.com/2009/07/install-truecrypt-on-fedora-10/ 
Ou en l’installant depuis les dépôts officielles à l’aide de yum.

Changer le mot de passe root de MySQL

J’ai essayé l’autre jour de me connecter en root à mon Serveur MySQL local fournit par LAMPP mais force était de me rendre compte que j’avais oublié mon mot de passe. J’ai donc chercher le moyen de réinitialiser celui ci sans utiliser la méthode simple du « j’enlève  LAMPP et j’en remet un neuf ».

Il existe plusieurs manières de procéder. Ce que je décris ici cependant ne fonctionne qu’avec une installation classique de MySQL. Il faudra l’adapter si vous avez un LAMPP installé dans /opt/ par exemple.

  • On peut suivre point par point la documentation officielle.
  • On peut aussi procéder de manière à ne pas prendre en compte le réseau. Ceci n’est réellement utile que lorsque les bases de données sont accessibles depuis l’extérieur. (Bouh c’est pas bien, il ne faut jamais faire ça) :
    • Arrêter sa base de donnée MySQL à l’aide de la commande :
      /etc/init.d/mysql stop
    • Lancer MySQL en désactivant l’authentification et l’écoute réseau :
      mysqld --skip-grant-tables --skip-networking &
    • Se connecter à sa base de données :
      mysql -u root
    • Réinitialiser le mot de passe root:
      UPDATE user SET password=PASSWORD('<NOUVEAU_MOT_DE_PASSE') WHERE user="root";
    • Quitter MySQLpuis redémarrer :
      /etc/init.d/mysql restart

Revoilà alors une base de données avec un mot de passe root tout neuf.

Changer le mot de passe d’un utilisateur MySQL

Je viens juste de me retrouver dans le cas où j’avais oublié le mot de passe d’un de mes utilisateur MySQL. Il fallait donc que je puisse soit le retrouver, mais je n’ai pas le temps de m’amuser à faire du brute force sur des hash surtout que je sais que le mot de passe que j’ai mis est extrêmement long, soit le changer.

Vu que l’utilisateur root n’est pas là que pour créer des BDD et des utilisateurs, il faut bien s’en servir. On va donc commencer par se connecter avec cet utilisateur à l’aide de la commande :

mysql -u root -p

Une fois la connexion effectuée, on va utiliser la base de donnée qui sert à la gestion de MySQL à savoir : mysql …

USE mysql;

On procède ensuite au changement de mot de passe à l’aide de la commande UPDATE :

UPDATE user SET password=PASSWORD('<NOUVEAU_MOT_DE_PASSE>') WHERE user='<NOM_DE_L_UTILISATEUR_DONT_ON_VEUT_CHANGER_LE_MDP>';

On applique ensuite les changement à l’aide de la commande :

FLUSH PRIVILEGES;

D’autres manières de faire existent dans la documentation officielle en fonction des versions/besoins.

Désactiver la commande sudo

Pour l’administration de mes serveurs, afin d’éviter tout risque de piratage, il est nécessaire d’avoir 2 mots de passe pour effectuer des commandes root.

Imaginons que notre compte utilisateur a accès à la fonction sudo, comme c’est le cas du première utilisateur créé dans la plupart des distributions GNU/Linux, et que le mot de passe de connexion en SSH est le mot de passe de ce compte. Si quelqu’un arrive à prendre connaissance du mot de passe lors de la connexion (keylogger, regard indiscret, …), il pourra ensuite se reconnecter et avoir un contrôle total du serveur distant.

Afin d’éviter cela, nous allons désactiver la fonction sudo pour l’utilisateur en question. Ainsi, pour effectuer des commandes administrateurs, il faudra se connecter préalablement en tant que super utilisateur.

On changera aussi le mot de passe du super utilisateur pour qu’il soit différent de celui du compte de l’utilisateur, sinon ceci n’a aucun intérêt.

Pour changer le mot de passe de root, rien de plus simple :

  • Si il a déjà été fixé, il suffit de faire
su
passwd

et de taper son nouveau mot de passe.

  • Si il n’a jamais été fixé, il faut se connecter avec un utilisateur possédant le droit d’utilisation de la fonction sudo et faire :
sudo su
passwd

et de taper le nouveau mot de passe.

Maintenant que nous sommes sûr d’avoir un utilisateur root avec un mot de passe que l’on connait, on va désactiver la fonction sudo. Pour ceci plusieurs possibilités :

  • Désinstaller purement et simplement la fonction sudo avec :
apt-get purge sudo
  • Modifier le fichier /etc/sudoers et commenter/supprimer les lignes correspondantes aux utilisateurs. Vous pouvez choisir de laisser ou d’enlever root du fichier. L’intérêt de le laisser est de na pas avoir une erreur lorsque, machinalement, on tape sudo alors qu’on est connecté en root. L’enlever vous forcera à bien séparer les commandes administrateurs des commandes utilisateur dans votre tête. Une autre solution pour se forcer est de retirer la commande sudo du path de l’utilisateur root. Ne connaissant plus la commande sudo, il indiquera systématiquement une erreur.

Il ne reste plus qu’à valider les changements soit en redémarrant la machine, soit à l’aide de la commande :

/etc/init.d/sudo restart

Autoriser la connexion de root en FTP avec vsFTPd

ATTENTION : Ce que je détail ici est à titre informatif et n’est en aucun cas recommandé.

Le cas m’est arrivé une fois où je devais me connecter en root en FTP car je n’avais pas encore créé d’autre utilisateur. Ceci est à éviter autant que possible pour plusieurs raison :

  • La première est le fait que le protocole FTP utilisé sans SSL (FTPS) fait transiter en clair les informations de connexion. Ainsi, une personne qui intercepte le mot de passe root peut prendre un accès total de la machine.
  • La deuxième est que, selon moi, le root est l’administrateur de la machine et pas de chaque logiciel.

vsFTPd utilise un fichier qui contient la liste des utilisateurs n’ayant pas le droit de se connecter. Celui ci est /etc/ftpusers. On voit en première ligne que le nom de root y est apposé. Il suffit de supprimer la ligne correspondante et de redémarrer vsFTPd avec

/etc/init.d/vsftpd restart

pour que l’utilisateur root soit autorisé à se connecter.