How to start Tor Browser on Linux

I normally don’t use the .desktop (I usually launch from the terminal…), but the .desktop is also supposed to work, if your system supports it.

Tor Browser is a Firefox fork.
You can customize the name of the binary, but we didn’t know it, and eventually also the main binary of Tor Browser is called firefox (firefox.real, actually). For Mullvad Browser, we knew this, and called the binary mullvadbrowser.

In particular, there are the following files in the Browser directory:

  • start-tor-browser: a shell script that does some environment customziation (rewrites $HOME, set a custom fontconfig configuration, etc…). This is one of the two script to use to start Tor Browser.
  • start-tor-browser.desktop: calls start-tor-browser, but it has a custom icon (if your file manager supports it - notably Nautilus doesn’t to avoid attacks from untrusted .desktop files). This is also a way to start Tor Browser, if your system supports it.
  • firefox.real: this is the real compiled binary. You shouldn’t launch it directly, because it will be missing some protections that the custom environment set by the other two files would prepare. You might be fingerprintable from other Tor Browser users if you use it directly.
    • The only case in which you need to use this is if you want to launch Tor Browser inside a debugger. In that case, please remember to customize your debugging environment to look like the environment we create. However, when you build Tor Browser/Firefox for debugging, you won’t need to launch it inside a debugger, because Firefox integrates some utilities to tell you the PID to attach to it if it crashes.
  • firefox: this is a wrapper for firefox.real. It checks if your system has a recent enough, and if it doesn’t, it adds the directory that contains the we ship to LD_LIBRARY_PATH. It was created for updating purposes, I don’t know if it’s still needed/it still works. You shouldn’t launch directly this, like firefox.real it lacks the custom environment.

These files are not related at all to the firefox command that usually is the official Firefox, packaged by your distribution and you can usually find in a directory such as /usr/bin.
I was talking about the firefox script with execution permission we ship.