Skip to content

Safe FTP/wget Usage

Using a .netrc File

The Problem

Here we have a user who is downloading some_genome_file.fa from where it is hosted at https://someremotesite.org. They started the download with this command:

$ wget --user=bob --password=SEcrEt --continue https://someremotesite.org/some_genome_file.fa .

The file is downloading nicely but if another user runs ps or top they will see the list of the processes running on the system can see your password:

$ ps aux | grep wget
bob 11705 pts/12 0:08 wget wget --user=bob --password=SEcrEt --continue https://someremotesite.org/somefile.fa .

Here they can see user Bob’s process number 11705 downloading the file and Bob’s username and password at that site.

The Solution

Use a .netrc or a .wgetrc file. This is a file that you create in your $HOME directory. Give it permissions of 600. Insert you username and password in that file. The wget, ftp and curl programs will automatically use a .netrc if it is there.

A .netrc file example:

login bob
password SEcrEt

Do not leave extra newlines at the end of your netrc file. Some applications might interpret these as missing additional entries.

Do a man netrc and man wget for the details. Search the internet for examples on how to use them.