It is pretty frustrating to try to find instructions to root Samsung Galaxy S3. There are many versions, many flash partitions to consider and especially the operation in Windows is complex due to excess legacy stuff.
In Ubuntu it is simple.
Use Google and use your own judgement if the source is reliable.
Unzip the file and then open the tar inside:
unzip CF-Root-SGS3-v6.4.zip tar xvf CF-Root-SGS3-v6.4.tar
You end up with files recovery.img, cache.img and param.bin. You will not use the last one.
First, remove the USB cable! Instructions forget this always and you will be very frustrated after fifth boot when you think you did not push the keys enough. This won’t work if USB cable is attached.
Shut down the phone. When powering up, press menu key and down key at the same time. You get a warning screen that you dismiss with up key.
Now install the USB cable. Linux does not need any drivers like Windows. The telephone is ready.
Usual disclaimer apply. Your fault.
Install heimdall-flash program (with two "l", the one with one "l’ is a different program).:
sudo apt-get install heimdall-flash
sudo heimdall flash --recovery recovery.img --cache cache.img
(Note: the name of the program is now heimdall and command for heimdall is flash. It is not "heimdall-flash" any more. Use a space, not a dash.)
Telephone boots automatically and now you are rooted.
This rooting is bare minimum, you likely want to do much more. But now you are able to use Android programs to do that for you.
Most of "Top Paid" applications in Google Play tools section require root. They are now available for you…