csync is a bidirectional file synchronizer for Linux. It allows the user to keep two copies of files and directories in sync. It uses uses widely adopted protocols like SMB or SFTP so that there is no need for a server component of csync. It is a user-level program which means there is no need to be a superuser. With pam_csync, it is possible to create roaming home directories.