Installation of rsync
For security reasons, running the rsync
server as an unprivileged user and group is encouraged. If you intend to
run rsync as a daemon, create the
rsyncd user and group
with the following commands issued by the root user:
groupadd -g 48 rsyncd
useradd -c "rsyncd Daemon" -m -d /home/rsync -g rsyncd \
-s /bin/false -u 48 rsyncd
First, fix a security vulnerability:
patch -Np1 -i ../rsync-3.4.1-security_fix-1.patch
Now Prepare rsync by running the following commands:
./configure --prefix=/usr \
--disable-xxhash \
--without-included-zlibmake
If you have "doxygen" installed and wish to
build HTML API documentation, issue:
doxygen
To run the tests, fix one test and then run the test suite:
sed -i '/typedef/d' wildtest.c
make check
Now Install, as the root user:
make install
If you built the documentation, install it using the following
commands as the root user:
install -v -m755 -d /usr/share/doc/rsync-3.4.1/api
install -v -m644 dox/html/* /usr/share/doc/rsync-3.4.1/api
Command Explanations
--disable-xxhash: This switch disables advanced
xxhash checksum support. Remove this switch if you have installed
xxhash.
--without-included-zlib: This switch enables
compilation with the system-installed zlib library.
Configuring rsync
Config Files
/etc/rsyncd.conf
Configuration Information
For client access to remote files, you may need to install the
OpenSSH-10.2p1 package to connect to the remote server.
This is a simple download-only configuration to set up running
rsync as a server. See the rsyncd.conf(5)
man-page for additional options (i.e., user authentication).
cat > /etc/rsyncd.conf << "EOF"
# This is a basic rsync configuration file
# It exports a single module without user authentication.
motd file = /home/rsync/welcome.msg
use chroot = yes
[localhost]
path = /home/rsync
comment = Default rsync module
read only = yes
list = yes
uid = rsyncd
gid = rsyncd
EOF
You can find additional configuration information and general
documentation about rsync at
https://rsync.samba.org/documentation.html.
Systemd Unit
Note that you only need to start the rsync server
if you want to provide an rsync archive on your local machine.
You don't need this unit to run the
rsync client.
Install the rsyncd.service
unit included in the "systemd-units"
package.
make install-rsyncd
![[Note]](../images/note.png)
Note
This package comes with two types of units: A service file and a
socket file. The service file will start rsync daemon once at boot
and it will keep running until the system shuts down. The socket file
will make systemd listen on rsync port (Default 873, needs to be
edited for anything else) and will start rsync daemon when something
tries to connect to that port and stop the daemon when the connection
is terminated. This is called socket activation and is analogous to
using {,x}inetd on a SysVinit based
system.
By default, the first method is used - rsync daemon is started
at boot and stopped at shutdown. If the socket method is desired, you
need to run as the root user:
systemctl stop rsyncd
systemctl disable rsyncd
systemctl enable rsyncd.socket
systemctl start rsyncd.socket
Note that socket method is only useful for remote backups. For
local backups you'll need the service method.