rsyncd.conf

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
rsyncd.conf(5)						       rsyncd.conf(5)



NAME
       rsyncd.conf - configuration file for rsync server

SYNOPSIS
       rsyncd.conf


DESCRIPTION
       The  rsyncd.conf file is the runtime configuration file for rsync when
       run as an rsync server.

       The rsyncd.conf file  controls  authentication,	access,	 logging  and
       available modules.


FILE FORMAT
       The  file consists of modules and parameters. A module begins with the
       name of the module in square brackets and  continues  until  the	 next
       module  begins. Modules contain parameters of the form ’name = value’.

       The file is line-based - that is, each newline-terminated line  repre-
       sents either a comment, a module name or a parameter.

       Only  the  first equals sign in a parameter is significant. Whitespace
       before or after the first equals sign is discarded. Leading,  trailing
       and  internal  whitespace in module and parameter names is irrelevant.
       Leading and trailing whitespace in a  parameter	value  is  discarded.
       Internal whitespace within a parameter value is retained verbatim.

       Any line beginning with a hash (#) is ignored, as are lines containing
       only whitespace.

       Any line ending in a \ is "continued" on the next line in the  custom-
       ary UNIX fashion.

       The  values  following  the equals sign in parameters are all either a
       string (no quotes needed) or a boolean, which may be given as  yes/no,
       0/1  or	true/false. Case is not significant in boolean values, but is
       preserved in string values.


LAUNCHING THE RSYNC DAEMON
       The rsync daemon is launched by	specifying  the	 --daemon  option  to
       rsync.

       The daemon must run with root privileges if you wish to use chroot, to
       bind to a port numbered under 1024 (as is the default 873), or to  set
       file  ownership.	  Otherwise, it must just have permission to read and
       write the appropriate data, log, and lock files.

       You can launch it either via inetd, as a stand-alone daemon,  or	 from
       an  rsync  client  via a remote shell.  If run as a stand-alone daemon
       then just run the command "rsync --daemon"  from	 a  suitable  startup
       script.	If run from an rsync client via a remote shell (by specifying
       both the "-e/--rsh" option and server mode with "::"  or	 "rsync://"),
       the --daemon option is automatically passed to the remote side.

       When run via inetd you should add a line like this to /etc/services:

	      rsync	      873/tcp

       and a single line something like this to /etc/inetd.conf:

	      rsync    stream	tcp	 nowait	 root	/usr/bin/rsync rsyncd
	      --daemon

       Replace "/usr/bin/rsync"	 with  the  path  to  where  you  have	rsync
       installed on your system.  You will then need to send inetd a HUP sig-
       nal to tell it to reread its config file.

       Note that you should not send the rsync server a HUP signal  to	force
       it  to reread the rsyncd.conf file. The file is re-read on each client
       connection.


GLOBAL OPTIONS
       The first parameters in the file (before a [module]  header)  are  the
       global parameters.

       You  may	 also include any module parameters in the global part of the
       config file in which case the supplied value will override the default
       for that parameter.


       motd file
	      The  "motd file" option allows you to specify a "message of the
	      day" to display to clients on each connect. This	usually	 con-
	      tains site information and any legal notices. The default is no
	      motd file.


       log file
	      The "log file" option tells the rsync daemon to log messages to
	      that file rather than using syslog. This is particularly useful
	      on systems (such	as  AIX)  where	 syslog()  doesn’t  work  for
	      chrooted programs.


       pid file
	      The  "pid file" option tells the rsync daemon to write its pro-
	      cess ID to that file.


       syslog facility
	      The "syslog facility" option allows you to specify  the  syslog
	      facility	name  to  use  when  logging  messages from the rsync
	      server. You may use any standard syslog facility name which  is
	      defined  on your system. Common names are auth, authpriv, cron,
	      daemon, ftp, kern, lpr, mail,  news,  security,  syslog,	user,
	      uucp,  local0,  local1,  local2, local3, local4, local5, local6
	      and local7. The default is daemon.


       socket options
	      This option can provide endless fun for people who like to tune
	      their  systems  to  the utmost degree. You can set all sorts of
	      socket options which may make transfers  faster  (or  slower!).
	      Read  the man page for the setsockopt() system call for details
	      on some of the options you may be able to set.  By  default  no
	      special socket options are set.



MODULE OPTIONS
       After  the  global options you should define a number of modules, each
       module exports a directory  tree	 as  a	symbolic  name.	 Modules  are
       exported	 by specifying a module name in square brackets [module] fol-
       lowed by the options for that module.



       comment
	      The "comment" option specifies a	description  string  that  is
	      displayed next to the module name when clients obtain a list of
	      available modules. The default is no comment.


       path   The "path"  option  specifies  the  directory  in	 the  servers
	      filesystem  to make available in this module.  You must specify
	      this option for each module in rsyncd.conf.


       use chroot
	      If "use chroot" is true, the rsync server will  chroot  to  the
	      "path" before starting the file transfer with the client.	 This
	      has the advantage of extra protection against  possible  imple-
	      mentation	 security  holes,  but	it  has	 the disadvantages of
	      requiring super-user privileges, of not being  able  to  follow
	      symbolic	links  that are either absolute or outside of the new
	      root path, and of complicating the  preservation	of  usernames
	      and  groups (see below).	When "use chroot" is false, for secu-
	      rity reasons, symlinks may only be relative paths	 pointing  to
	      other  files  within  the	 root  path,  and leading slashes are
	      removed from most absolute paths (options such as --backup-dir,
	      --compare-dest,  etc.  interpret	an absolute path as rooted in
	      the module’s "path" dir, just as if chroot was specified).  The
	      default for "use chroot" is true.

	      In  order	 to preserve usernames and groupnames, rsync needs to
	      be able to use the standard library functions  for  looking  up
	      names  and  IDs (i.e.  getpwuid(), getgrgid(), getpwname(), and
	      getgrnam()).  This means a process in the chroot namespace will
	      need  to	have  access  to  the resources used by these library
	      functions (traditionally /etc/passwd and /etc/group).  If these
	      resources	 are  not  available, rsync will only be able to copy
	      the IDs, just as if the --numeric-ids option  had	 been  speci-
	      fied.

	      Note  that  you are free to setup user/group information in the
	      chroot area differently from your normal system.	For  example,
	      you  could  abbreviate the list of users and groups.  Also, you
	      can protect this information from being downloaded/uploaded  by
	      adding  an exclude rule to the rsync.conf file (e.g. "exclude =
	      /etc/").	Note that having the exclusion affect  uploads	is  a
	      relatively  new  feature	in rsync, so make sure your server is
	      running at least 2.6.3 to effect this.


       max connections
	      The "max connections" option allows you to specify the  maximum
	      number of simultaneous connections you will allow.  Any clients
	      connecting when the maximum has been  reached  will  receive  a
	      message  telling	them  to  try  later.  The default is 0 which
	      means no limit.  See also the "lock file" option.


       lock file
	      The "lock file" option specifies the file to use to support the
	      "max  connections" option. The rsync server uses record locking
	      on this file to ensure that the max connections  limit  is  not
	      exceeded for the modules sharing the lock file.  The default is
	      /var/run/rsyncd.lock.


       read only
	      The "read only" option determines whether clients will be	 able
	      to  upload  files	 or  not.  If  "read  only"  is true then any
	      attempted uploads will fail.  If	"read  only"  is  false	 then
	      uploads  will  be	 possible  if  file permissions on the server
	      allow them. The default is for all modules to be read only.


       write only
	      The "write only" option determines whether clients will be able
	      to  download  files  or  not.  If "write only" is true then any
	      attempted downloads will fail. If "write only"  is  false	 then
	      downloads	 will  be  possible if file permissions on the server
	      allow them.  The default is for this option to be disabled.


       list   The "list" option determines if this module  should  be  listed
	      when  the	 client	 asks  for a listing of available modules. By
	      setting this to  false  you  can	create	hidden	modules.  The
	      default is for modules to be listable.


       uid    The  "uid"  option specifies the user name or user ID that file
	      transfers to and from that module should take place as when the
	      daemon  was  run	as root. In combination with the "gid" option
	      this  determines	what  file  permissions	 are  available.  The
	      default is uid -2, which is normally the user "nobody".


       gid    The "gid" option specifies the group name or group ID that file
	      transfers to and from that module should take place as when the
	      daemon  was run as root. This complements the "uid" option. The
	      default is gid -2, which is normally the group "nobody".


       exclude
	      The "exclude" option allows you to  specify  a  space-separated
	      list  of	patterns that the server will not allow to be read or
	      written.	This is only superficially equivalent to  the  client
	      specifying  these patterns with the --exclude option.  Only one
	      "exclude" option may be specified, but you can use "-" and  "+"
	      before patterns to specify exclude/include.

	      Because  this  exclude list is not passed to the client it only
	      applies on the server: that is, it excludes files received by a
	      client  when  receiving  from  a	server and files deleted on a
	      server when sending to a server, but it doesn’t  exclude	files
	      from being deleted on a client when receiving from a server.


       exclude from
	      The  "exclude  from"  option specifies a filename on the server
	      that contains exclude patterns, one per  line.   This  is	 only
	      superficially   equivalent   to	the   client  specifying  the
	      --exclude-from  option  with  an	equivalent  file.   See	  the
	      "exclude" option above.


       include
	      The  "include"  option  allows you to specify a space-separated
	      list of patterns which rsync should not exclude. This  is	 only
	      superficially  equivalent	 to  the client specifying these pat-
	      terns with the --include option because it applies only on  the
	      server.  This is useful as it allows you to build up quite com-
	      plex exclude/include rules.  Only one "include" option  may  be
	      specified,  but  you  can	 use  "+"  and "-" before patterns to
	      switch include/exclude.  See the "exclude" option above.


       include from
	      The "include from" option specifies a filename  on  the  server
	      that  contains  include  patterns,  one  per line. This is only
	      superficially  equivalent	 to   the   client   specifying	  the
	      --include-from   option	with  a	 equivalent  file.   See  the
	      "exclude" option above.


       auth users
	      The "auth users" option specifies a comma	 and  space-separated
	      list  of usernames that will be allowed to connect to this mod-
	      ule. The usernames do not need to exist on  the  local  system.
	      The  usernames  may  also contain shell wildcard characters. If
	      "auth users" is set then the client will be challenged to	 sup-
	      ply  a  username and password to connect to the module. A chal-
	      lenge  response  authentication  protocol	 is  used  for	 this
	      exchange.	 The plain text usernames are passwords are stored in
	      the file specified by the "secrets file" option. The default is
	      for all users to be able to connect without a password (this is
	      called "anonymous rsync").

	      See also the CONNECTING TO AN RSYNC SERVER OVER A REMOTE	SHELL
	      PROGRAM  section	in  rsync(1) for information on how handle an
	      rsyncd.conf-level username that differs from the	remote-shell-
	      level username when using a remote shell to connect to an rsync
	      server.


       secrets file
	      The "secrets file" option specifies the name  of	a  file	 that
	      contains	the  username:password	pairs used for authenticating
	      this module. This file is only consulted if  the	"auth  users"
	      option  is specified. The file is line based and contains user-
	      name:password pairs separated  by	 a  single  colon.  Any	 line
	      starting	with  a	 hash  (#)  is	considered  a  comment and is
	      skipped. The passwords can contain any characters but be warned
	      that  many operating systems limit the length of passwords that
	      can be typed at the client end, so you may find that  passwords
	      longer than 8 characters don’t work.

	      There  is	 no  default  for the "secrets file" option, you must
	      choose a name (such as  /etc/rsyncd.secrets).   The  file	 must
	      normally not be readable by "other"; see "strict modes".


       strict modes
	      The "strict modes" option determines whether or not the permis-
	      sions on the secrets file will be checked.  If  "strict  modes"
	      is true, then the secrets file must not be readable by any user
	      ID other than the one that the rsync daemon is  running  under.
	      If  "strict  modes"  is false, the check is not performed.  The
	      default is true.	This option was added  to  accommodate	rsync
	      running on the Windows operating system.


       hosts allow
	      The  "hosts  allow" option allows you to specify a list of pat-
	      terns that are matched against a	connecting  clients  hostname
	      and  IP address. If none of the patterns match then the connec-
	      tion is rejected.

	      Each pattern can be in one of five forms:


       o      a dotted decimal IPv4 address of the form a.b.c.d, or  an	 IPv6
	      address  of  the	form  a:b:c::d:e:f. In this case the incoming
	      machine’s IP address must match exactly.


       o      an address/mask in the form ipaddr/n where  ipaddr  is  the  IP
	      address and n is the number of one bits in the netmask.  All IP
	      addresses which match the masked IP address will be allowed in.


       o      an address/mask in the form ipaddr/maskaddr where ipaddr is the
	      IP address and maskaddr is the netmask in dotted decimal	nota-
	      tion  for IPv4, or similar for IPv6, e.g. ffff:ffff:ffff:ffff::
	      instead of /64. All IP addresses	which  match  the  masked  IP
	      address will be allowed in.


       o      a hostname. The hostname as determined by a reverse lookup will
	      be matched (case insensitive)  against  the  pattern.  Only  an
	      exact match is allowed in.


       o      a hostname pattern using wildcards. These are matched using the
	      same rules as normal unix filename  matching.  If	 the  pattern
	      matches then the client is allowed in.

	      Note  IPv6 link-local addresses can have a scope in the address
	      specification:

	      fe80::1%link1
	      fe80::%link1/64
	      fe80::%link1/ffff:ffff:ffff:ffff::

	      You can also combine "hosts allow" with a separate "hosts deny"
	      option.  If  both	 options are specified then the "hosts allow"
	      option s checked first and a match results in the client	being
	      able  to connect. The "hosts deny" option is then checked and a
	      match means that the host is rejected. If	 the  host  does  not
	      match  either  the  "hosts  allow" or the "hosts deny" patterns
	      then it is allowed to connect.

	      The default is no "hosts allow" option, which means  all	hosts
	      can connect.


       hosts deny
	      The  "hosts  deny"  option allows you to specify a list of pat-
	      terns that are matched against a	connecting  clients  hostname
	      and  IP  address. If the pattern matches then the connection is
	      rejected. See the "hosts allow" option for more information.

	      The default is no "hosts deny" option, which  means  all	hosts
	      can connect.


       ignore errors
	      The "ignore errors" option tells rsyncd to ignore I/O errors on
	      the server when deciding whether to run the delete phase of the
	      transfer.	 Normally  rsync  skips	 the --delete step if any I/O
	      errors have occurred in order to prevent	disasterous  deletion
	      due  to  a  temporary  resource shortage or other I/O error. In
	      some cases this test is counter productive so you can use	 this
	      option to turn off this behaviour.


       ignore nonreadable
	      This tells the rsync server to completely ignore files that are
	      not readable by the user. This is useful	for  public  archives
	      that  may	 have  some non-readable files among the directories,
	      and the sysadmin doesn’t want those files to be seen at all.


       transfer logging
	      The "transfer logging" option enables per-file logging of down-
	      loads  and uploads in a format somewhat similar to that used by
	      ftp daemons. If you want to customize the log formats  look  at
	      the log format option.


       log format
	      The  "log	 format" option allows you to specify the format used
	      for logging file transfers when transfer	logging	 is  enabled.
	      The  format is a text string containing embedded single charac-
	      ter escape sequences prefixed with a percent (%) character.

	      The prefixes that are understood are:


       o      %h for the remote host name

       o      %a for the remote IP address

       o      %l for the length of the file in bytes

       o      %p for the process ID of this rsync session

       o      %o for the operation, which is either "send" or "recv"

       o      %f for the filename

       o      %P for the module path

       o      %m for the module name

       o      %t for the current date time

       o      %u for the authenticated username (or the null string)

       o      %b for the number of bytes actually transferred

       o      %c when sending files this gives the number of  checksum	bytes
	      received for this file

	      The default log format is "%o %h [%a] %m (%u) %f %l", and a "%t
	      [%p] " is always added to the beginning  when  using  the	 "log
	      file" option.

	      A	 perl  script  called  rsyncstats to summarize this format is
	      included in the rsync source code distribution.


       timeout
	      The "timeout" option allows you to override the clients  choice
	      for  I/O	timeout	 for  this  module. Using this option you can
	      ensure that rsync won’t wait on  a  dead	client	forever.  The
	      timeout is specified in seconds. A value of zero means no time-
	      out and is the default.  A  good	choice	for  anonymous	rsync
	      servers may be 600 (giving a 10 minute timeout).


       refuse options
	      The "refuse options" option allows you to specify a space-sepa-
	      rated list of rsync command line options that will  be  refused
	      by  your	rsync  server.	You may specify the full option name,
	      its one-letter abbreviation, or a wild-card string that matches
	      multiple	options.   For	example, this would refuse --checksum
	      (-c) and all the options that start with "delete":

	      refuse options = c delete*

	      When an option is refused, the server prints an  error  message
	      and  exits.  To prevent all compression, you can use "dont com-
	      press = *" (see below) instead of "refuse options	 =  compress"
	      to  avoid returning an error to a client that requests compres-
	      sion.


       dont compress
	      The "dont compress" option allows you to select filenames based
	      on  wildcard  patterns  that  should  not	 be compressed during
	      transfer. Compression is expensive in terms of CPU usage so  it
	      is  usually  good	 to not try to compress files that won’t com-
	      press well, such as already compressed files.

	      The "dont compress" option  takes	 a  space-separated  list  of
	      case-insensitive	wildcard patterns. Any source filename match-
	      ing one of the patterns will not be compressed during transfer.

	      The default setting is

	      *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz





AUTHENTICATION STRENGTH
       The authentication protocol used in rsync is a 128 bit MD4 based chal-
       lenge response system. Although I believe that no one has ever  demon-
       strated	a brute-force break of this sort of system you should realize
       that this is not a  "military  strength"	 authentication	 system.   It
       should  be  good	 enough	 for most purposes but if you want really top
       quality security then I recommend that you run rsync over ssh.

       Also note that the rsync server protocol does  not  currently  provide
       any  encryption	of  the data that is transferred over the connection.
       Only authentication is provided. Use ssh as the transport if you	 want
       encryption.

       Future versions of rsync may support SSL for better authentication and
       encryption, but that is still being investigated.


RUNNING AN RSYNC SERVER OVER A REMOTE SHELL PROGRAM
       If rsync is run with both the --daemon and --rsh (-e) options, it will
       spawn  an  rsync daemon using a remote shell connection.	 Several con-
       figuration options will not be available unless	the  remote  user  is
       root  (e.g. chroot, setuid/setgid, etc.).  There is no need to config-
       ure inetd or the services map to include the rsync server port if  you
       run an rsync server only via a remote shell program.

       ADVANCED:  To run an rsync server out of a single-use ssh key, use the
       "command=COMMAND" syntax in the remote user’s  authorized_keys  entry,
       where command would be

	      rsync --server --daemon .

       NOTE:  rsync’s argument parsing expects the trailing ".", so make sure
       that it’s there.	 If you want to use an rsyncd.conf(5)-style  configu-
       ration file other than the default, you can added a --config option to
       the command:

	      rsync --server --daemon --config=file .

       Note that the "--server" here is the internal option that  rsync	 uses
       to run the remote version of rsync that it communicates with, and thus
       you should not be using	the  --server  option  under  normal  circum-
       stances.


EXAMPLES
       A  simple rsyncd.conf file that allow anonymous rsync to a ftp area at
       /home/ftp would be:




       [ftp]
	       path = /home/ftp
	       comment = ftp export area




       A more sophisticated example would be:

       uid = nobody
       gid = nobody
       use chroot = no
       max connections = 4
       syslog facility = local5
       pid file = /var/run/rsyncd.pid



       [ftp]
	       path = /var/ftp/pub
	       comment = whole ftp area (approx 6.1 GB)

       [sambaftp]
	       path = /var/ftp/pub/samba
	       comment = Samba ftp area (approx 300 MB)

       [rsyncftp]
	       path = /var/ftp/pub/rsync
	       comment = rsync ftp area (approx 6 MB)

       [sambawww]
	       path = /public_html/samba
	       comment = Samba WWW pages (approx 240 MB)

       [cvs]
	       path = /data/cvs
	       comment = CVS repository (requires authentication)
	       auth users = tridge, susan
	       secrets file = /etc/rsyncd.secrets




       The /etc/rsyncd.secrets file would look something like this:

       tridge:mypass
       susan:herpass


FILES
       /etc/rsyncd.conf or rsyncd.conf


SEE ALSO
       rsync(1)


DIAGNOSTICS
BUGS
       The rsync server does not send all types	 of  error  messages  to  the
       client.	this  means  a	client	may be mystified as to why a transfer
       failed. The error will have been logged by syslog on the server.

       Please report bugs!  The	 rsync	bug  tracking  system  is  online  at
       http://rsync.samba.org/


VERSION
       This man page is current for version 2.x of rsync.


CREDITS
       rsync is distributed under the GNU public license.  See the file COPY-
       ING for details.

       The primary ftp site for rsync is ftp://rsync.samba.org/pub/rsync.

       A WEB site is available at http://rsync.samba.org/

       We would be delighted to hear from you if you like this program.

       This program uses the zlib compression library  written	by  Jean-loup
       Gailly and Mark Adler.


THANKS
       Thanks to Warren Stanley for his original idea and patch for the rsync
       server. Thanks to Karsten Thygesen for his many suggestions and	docu-
       mentation!


AUTHOR
       rsync  was written by Andrew Tridgell and Paul Mackerras.  They may be
       contacted   via	 email	 at   tridge@samba.org	  and	 Paul.Macker-
       ras@cs.anu.edu.au




				 30 Sep 2004		       rsyncd.conf(5)