- The recent ease of cloning filesystems and the promiscuity of datacenters has placed a great deal of sensitive data at risk when files are remotely hosted at a site not under your complete control. The reliability and security of online storage is low, and, in fact, can often be a means for intercepting or otherwise changing those files that have been placed on the remote servers. Further, any data left on public storage devices in the US for more than 180 days are subject to search and seizure by government agencies there. (Also see this.) Always encrypt sensitive private files stored on public servers.
- It is almost always more secure to host your own server(s) in house and to limit the traffic and access to your files and servers to members of your own organization. Learning how to run your own servers is worth the effort, and powerful hardware on which to run them is inexpensive these days.
FTP (online file transfer)
- See this section on FTP servers for more information about vsftp and proftp.
- See this section on FTP clients for more information about FileZilla.
- Also see these FTP tips.
WebDAV (online folders)
Dropbox (online cloud storage)
Dropbox is a free but proprietary online remote hosting service for private files (similar to the free open-source alternative SparkleShare). Be careful of any storage solution not under your complete control (especially proprietary solutions); they are insecure and should be used for temporary storage of non-critical files only (as an alternative to sending files by email).
- Install prerequisities (several may already be installed on your system):
sudo apt-get install sqlite3 python python-gpgme
- Download and install the Dropbox client daemon:
wget -O dropbox-current_amd64.deb https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_1.6.0_amd64.deb sudo dpkg -i dropbox-current_amd64.deb sudo rm dropbox-current_amd64.deb
- or for the 32-bit version:
wget -O dropbox-current_i386.deb https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_1.6.0_i386.deb sudo dpkg -i dropbox-current_i386.deb sudo rm dropbox-current_i386.deb
- The default Dropbox client installation will also install an add-on plugin for the Nautilus file manager. If not, install the plugin:
sudo apt-get install nautilus-dropbox
- See this article if interested in using Dropbox as a webseed for BitTorrent. Because Dropbox is insecure, you may wish to consider installing Dropbox within a quarantined virtual machine and run the virtual machine containing Dropbox only when connected to a secure Internet connection (such as through Tor).
Google Drive (online cloud storage)
Google Drive is a free but proprietary online remote hosting service for private files (similar to the free open-source alternative SparkleShare). Be careful of any storage solution not under your complete control (especially proprietary solutions); they are insecure and should be used for temporary storage of non-critical files only (as an alternative to sending files by email).
- Grive is a free, open-source command-line API for Linux systems to interface with Google Drive.
- Download and install a 32-bit or 64-bit .deb package here.
Other online webhosts
- There are many services offering online webhosting with a wide range of included services. No online webhost should be considered secure; however, the usage of a public webhost may be suitable for certain public, non-sensitive needs. Many webhosts go offline or disappear altogether without notice, so backup and security precautions are essential at all times.
- Here is a list of free webhosts, all of which should be assumed to be insecure.
- Many users use public webhosts through Tor for temporary storage of files only, and never for unencrypted sensitive, private files. A popular method is to sign up for a webhost account (through Tor or from an anonymous IP address) using an anonymous email account. Filezilla with Tor is subsequently used to securely transfer files to the webhost. (See this article if interested in using the webhost as a webseed for BitTorrent.) Some users access the free webhost only from within a quarantined virtual machine.
(K)Ubuntu uses Debian (.deb) packages. Individuals or organizations can create repositories for personal or specialized use. See the Debian wiki introduction. Also see this Ubuntu community advice and this.
DebArchiver is a command-line utility that allows the creation of a folder-based repository. Instructions are from man debarchiver (in a command-line terminal). Install:
sudo apt-get install debarchiver
Version control software
Copies of software being developed at many different locations require a method to ensure that the multiple distributed copies remain synchronized. This can be done using a central repository or using a distributed synchronization technique. For further information, see the official Ubuntu documentation. Several version control platforms exist:
- Bazaar is sponsored by Canonical and also allows distributed synchronization. Also see the official Ubuntu documentation. Install Bazaar with a GTK-based GUI and Nautilus integration:
sudo apt-get install bzr bzr-gtk nautilus-bzr
- Subversion. Now part of Apache, this is one of the most widely used systems and uses a central repository for synchronization. Also see the official Ubuntu documentation. Install along with Nautilus integration scripts:
sudo apt-get install subversion nautilus-script-collection-svn
- Mercurial (hg) is a newer, low-resource version control system. Install:
sudo apt-get install mercurial
- CVS was previously the most widely used system. Also see the official Ubuntu documentation. Install:
sudo apt-get install cvs
- TkCVS is a GUI frontend for both CVS and Subversion. Install:
sudo apt-get install tkcvs
- Git allows distributed synchronization and is currently one of the most widely used systems. Also see the official Ubuntu documentation and the Ubuntu community documentation. The git client can be installed:
sudo apt-get install git
- and the gitosis server software:
sudo apt-get install gitosis
- GitK is a Tk-based Git tree visualizer. Install:
sudo apt-get install gitk
SparkleShare (Git frontend)
sudo add-apt-repository ppa:warp10/sparkleshare sudo apt-get update sudo apt-get install sparkleshare