Skip to content

Firefox, un utilisateur, plusieurs machines, un profil par machines

Cette astuce s'adresse au gens qui, comme moi, travaillent sur plusieurs machines avec un seul compte partagé.

Il m'arrive souvent de faire plusieurs ssh vers des machines réseaux avec le même utilisateur. Étant donné que le /home est partagé, et que les profiles Firefox sont stockés dans ~/.mozilla/firefox, si vous lancez Firefox sur les deux machines et bien... vous pouvez pas.

Un exemple simple pour comprendre de quoi je parle :

  • Dans deux terminaux différents je lance deux ssh avec le même utilisateur sur deux machines différentes
  • Sur la machine A, je lance la commande:
user@machineA$ firefox /ma/page/localA.html

J'ai bien une fenêtre Firefox qui s'ouvre avec la page localA.html.

  • Sur la machine B, je fait la même chose sans fermer l'instance de Firefox sur la machine A :
user@machineB$ firefox /ma/page/localB.html

Firefox tente d'afficher localB.html sur l'instance de la machine A (Ha.. la joie des pipes, des locks et compagnie)

Ça me dérange pas en d'avoir les deux pages dans la même fenêtre, mais le problème c'est que localB.html ... est sur la machine B pas la A. Conclusion : Firefox ne trouve pas localB.html (normal)

La solution se trouve dans la gestion des profiles. Il suffit d'utiliser un profile distinct pour chaque machine.

  • Premièrement, créons nos deux profiles :
$ firefox -CreateProfile profileA --no-remote
$ firefox -CreateProfile profileB --no-remote
  • Ensuite il suffit de lancer Firefox en utilisant le profile associé à la machine :
user@machineA$ firefox -P profileA --no-remote /ma/page/localA.html
user@machineB$ firefox -P profileB --no-remote /ma/page/localB.html

Ainsi j'ai deux instances de Firefox qui sont lancées.

Pour automatiser tout ça, il suffit de rajouter ces quelques lignes à votre .bashrc :

#si le profile de la machine n'existe pas, on le crée.
if [[ $(ls ~/.mozilla/firefox | grep profile$(hostname) | wc -l ) -eq 0 ]]
then
    firefox -CreateProfile profile$(hostname) --no-remote
fi

#un alias pour automatiquement utiliser le profile de la machine
alias firefox="firefox -P profile$(hostname) --no-remote"

À nous les joies du surf profilé :)