625566ed7980d71cf6564a563a2312892b37a1a7
[rsync.git] / rsyncd.conf.yo
1 mailto(rsync-bugs@samba.org)
2 manpage(rsyncd.conf)(5)(10 Feb 2008)()()
3 manpagename(rsyncd.conf)(configuration file for rsync in daemon mode)
4 manpagesynopsis()
5
6 rsyncd.conf
7
8 manpagedescription()
9
10 The rsyncd.conf file is the runtime configuration file for rsync when
11 run as an rsync daemon.
12
13 The rsyncd.conf file controls authentication, access, logging and
14 available modules.
15
16 manpagesection(FILE FORMAT)
17
18 The file consists of modules and parameters. A module begins with the
19 name of the module in square brackets and continues until the next
20 module begins. Modules contain parameters of the form "name = value".
21
22 The file is line-based -- that is, each newline-terminated line represents
23 either a comment, a module name or a parameter.
24
25 Only the first equals sign in a parameter is significant. Whitespace before
26 or after the first equals sign is discarded. Leading, trailing and internal
27 whitespace in module and parameter names is irrelevant. Leading and
28 trailing whitespace in a parameter value is discarded. Internal whitespace
29 within a parameter value is retained verbatim.
30
31 Any line beginning with a hash (#) is ignored, as are lines containing
32 only whitespace.
33
34 Any line ending in a \ is "continued" on the next line in the
35 customary UNIX fashion.
36
37 The values following the equals sign in parameters are all either a string
38 (no quotes needed) or a boolean, which may be given as yes/no, 0/1 or
39 true/false. Case is not significant in boolean values, but is preserved
40 in string values.
41
42 manpagesection(LAUNCHING THE RSYNC DAEMON)
43
44 The rsync daemon is launched by specifying the bf(--daemon) option to
45 rsync.
46
47 The daemon must run with root privileges if you wish to use chroot, to
48 bind to a port numbered under 1024 (as is the default 873), or to set
49 file ownership.  Otherwise, it must just have permission to read and
50 write the appropriate data, log, and lock files.
51
52 You can launch it either via inetd, as a stand-alone daemon, or from
53 an rsync client via a remote shell.  If run as a stand-alone daemon then
54 just run the command "bf(rsync --daemon)" from a suitable startup script.
55
56 When run via inetd you should add a line like this to /etc/services:
57
58 verb(  rsync           873/tcp)
59
60 and a single line something like this to /etc/inetd.conf:
61
62 verb(  rsync   stream  tcp     nowait  root   /usr/bin/rsync rsyncd --daemon)
63
64 Replace "/usr/bin/rsync" with the path to where you have rsync installed on
65 your system.  You will then need to send inetd a HUP signal to tell it to
66 reread its config file.
67
68 Note that you should bf(not) send the rsync daemon a HUP signal to force
69 it to reread the tt(rsyncd.conf) file. The file is re-read on each client
70 connection.
71
72 manpagesection(GLOBAL OPTIONS)
73
74 The first parameters in the file (before a [module] header) are the
75 global parameters.
76
77 You may also include any module parameters in the global part of the
78 config file in which case the supplied value will override the
79 default for that parameter.
80
81 startdit()
82 dit(bf(motd file)) The "motd file" option allows you to specify a
83 "message of the day" to display to clients on each connect. This
84 usually contains site information and any legal notices. The default
85 is no motd file.
86
87 dit(bf(pid file)) The "pid file" option tells the rsync daemon to write
88 its process ID to that file.  If the file already exists, the rsync
89 daemon will abort rather than overwrite the file.
90
91 dit(bf(port)) You can override the default port the daemon will listen on
92 by specifying this value (defaults to 873).  This is ignored if the daemon
93 is being run by inetd, and is superseded by the bf(--port) command-line option.
94
95 dit(bf(address)) You can override the default IP address the daemon
96 will listen on by specifying this value.  This is ignored if the daemon is
97 being run by inetd, and is superseded by the bf(--address) command-line option.
98
99 dit(bf(socket options)) This option can provide endless fun for people
100 who like to tune their systems to the utmost degree. You can set all
101 sorts of socket options which may make transfers faster (or
102 slower!). Read the man page for the code(setsockopt()) system call for
103 details on some of the options you may be able to set. By default no
104 special socket options are set.  These settings are superseded by the
105 bf(--sockopts) command-line option.
106
107 enddit()
108
109
110 manpagesection(MODULE OPTIONS)
111
112 After the global options you should define a number of modules, each
113 module exports a directory tree as a symbolic name. Modules are
114 exported by specifying a module name in square brackets [module]
115 followed by the options for that module.
116 The module name cannot contain a slash or a closing square bracket.  If the
117 name contains whitespace, each internal sequence of whitespace will be
118 changed into a single space, while leading or trailing whitespace will be
119 discarded.
120
121 startdit()
122
123 dit(bf(comment)) The "comment" option specifies a description string
124 that is displayed next to the module name when clients obtain a list
125 of available modules. The default is no comment.
126
127 dit(bf(path)) The "path" option specifies the directory in the daemon's
128 filesystem to make available in this module.  You must specify this option
129 for each module in tt(rsyncd.conf).
130
131 dit(bf(use chroot)) If "use chroot" is true, the rsync daemon will chroot
132 to the "path" before starting the file transfer with the client.  This has
133 the advantage of extra protection against possible implementation security
134 holes, but it has the disadvantages of requiring super-user privileges,
135 of not being able to follow symbolic links that are either absolute or outside
136 of the new root path, and of complicating the preservation of usernames and groups
137 (see below).  When "use chroot" is false, rsync will: (1) munge symlinks by
138 default for security reasons (see "munge symlinks" for a way to turn this
139 off, but only if you trust your users), (2) substitute leading slashes in
140 absolute paths with the module's path (so that options such as
141 bf(--backup-dir), bf(--compare-dest), etc. interpret an absolute path as
142 rooted in the module's "path" dir), and (3) trim ".." path elements from
143 args if rsync believes they would escape the chroot.
144 The default for "use chroot" is true, and is the safer choice (especially
145 if the module is not read-only).
146
147 In order to preserve usernames and groupnames, rsync needs to be able to
148 use the standard library functions for looking up names and IDs (i.e.
149 code(getpwuid()), code(getgrgid()), code(getpwname()), and code(getgrnam())).  This means a
150 process in the chroot namespace will need to have access to the resources
151 used by these library functions (traditionally /etc/passwd and
152 /etc/group).  If these resources are not available, rsync will only be
153 able to copy the IDs, just as if the bf(--numeric-ids) option had been
154 specified.
155
156 Note that you are free to setup user/group information in the chroot area
157 differently from your normal system.  For example, you could abbreviate
158 the list of users and groups.  Also, you can protect this information from
159 being downloaded/uploaded by adding an exclude rule to the rsyncd.conf file
160 (e.g. "bf(exclude = /etc/**)").  Note that having the exclusion affect uploads
161 is a relatively new feature in rsync, so make sure your daemon is
162 at least 2.6.3 to effect this.  Also note that it is safest to exclude a
163 directory and all its contents combining the rule "/some/dir/" with the
164 rule "/some/dir/**" just to be sure that rsync will not allow deeper
165 access to some of the excluded files inside the directory (rsync tries to
166 do this automatically, but you might as well specify both to be extra
167 sure).
168
169 dit(bf(munge symlinks))  The "munge symlinks" option tells rsync to modify
170 all incoming symlinks in a way that makes them unusable but recoverable
171 (see below).  This should help protect your files from user trickery when
172 your daemon module is writable.  The default is disabled when "use chroot"
173 is on and enabled when "use chroot" is off.
174
175 If you disable this option on a daemon that is not read-only, there
176 are tricks that a user can play with uploaded symlinks to access
177 daemon-excluded items (if your module has any), and, if "use chroot"
178 is off, rsync can even be tricked into showing or changing data that
179 is outside the module's path (as access-permissions allow).
180
181 The way rsync disables the use of symlinks is to prefix each one with
182 the string "/rsyncd-munged/".  This prevents the links from being used
183 as long as that directory does not exist.  When this option is enabled,
184 rsync will refuse to run if that path is a directory or a symlink to
185 a directory.  When using the "munge symlinks" option in a chroot area,
186 you should add this path to the exclude setting for the module so that
187 a user can't try to create it.
188
189 Note:  rsync makes no attempt to verify that any pre-existing symlinks in
190 the hierarchy are as safe as you want them to be.  If you setup an rsync
191 daemon on a new area or locally add symlinks, you can manually protect your
192 symlinks from being abused by prefixing "/rsyncd-munged/" to the start of
193 every symlink's value.  There is a perl script in the support directory
194 of the source code named "munge-symlinks" that can be used to add or remove
195 this prefix from your symlinks.
196
197 When this option is disabled on a writable module and "use chroot" is off,
198 incoming symlinks will be modified to drop a leading slash and to remove ".."
199 path elements that rsync believes will allow a symlink to escape the module's
200 hierarchy.  There are tricky ways to work around this, though, so you had
201 better trust your users if you choose this combination of options.
202
203 dit(bf(max connections)) The "max connections" option allows you to
204 specify the maximum number of simultaneous connections you will allow.
205 Any clients connecting when the maximum has been reached will receive a
206 message telling them to try later.  The default is 0, which means no limit.
207 A negative value disables the module.
208 See also the "lock file" option.
209
210 dit(bf(log file)) When the "log file" option is set to a non-empty
211 string, the rsync daemon will log messages to the indicated file rather
212 than using syslog. This is particularly useful on systems (such as AIX)
213 where code(syslog()) doesn't work for chrooted programs.  The file is
214 opened before code(chroot()) is called, allowing it to be placed outside
215 the transfer.  If this value is set on a per-module basis instead of
216 globally, the global log will still contain any authorization failures
217 or config-file error messages.
218
219 If the daemon fails to open to specified file, it will fall back to
220 using syslog and output an error about the failure.  (Note that the
221 failure to open the specified log file used to be a fatal error.)
222
223 dit(bf(syslog facility)) The "syslog facility" option allows you to
224 specify the syslog facility name to use when logging messages from the
225 rsync daemon. You may use any standard syslog facility name which is
226 defined on your system. Common names are auth, authpriv, cron, daemon,
227 ftp, kern, lpr, mail, news, security, syslog, user, uucp, local0,
228 local1, local2, local3, local4, local5, local6 and local7. The default
229 is daemon.  This setting has no effect if the "log file" setting is a
230 non-empty string (either set in the per-modules settings, or inherited
231 from the global settings).
232
233 dit(bf(max verbosity)) The "max verbosity" option allows you to control
234 the maximum amount of verbose information that you'll allow the daemon to
235 generate (since the information goes into the log file). The default is 1,
236 which allows the client to request one level of verbosity.
237
238 dit(bf(lock file)) The "lock file" option specifies the file to use to
239 support the "max connections" option. The rsync daemon uses record
240 locking on this file to ensure that the max connections limit is not
241 exceeded for the modules sharing the lock file.
242 The default is tt(/var/run/rsyncd.lock).
243
244 dit(bf(read only)) The "read only" option determines whether clients
245 will be able to upload files or not. If "read only" is true then any
246 attempted uploads will fail. If "read only" is false then uploads will
247 be possible if file permissions on the daemon side allow them. The default
248 is for all modules to be read only.
249
250 dit(bf(write only)) The "write only" option determines whether clients
251 will be able to download files or not. If "write only" is true then any
252 attempted downloads will fail. If "write only" is false then downloads
253 will be possible if file permissions on the daemon side allow them.  The
254 default is for this option to be disabled.
255
256 dit(bf(list)) The "list" option determines if this module should be
257 listed when the client asks for a listing of available modules. By
258 setting this to false you can create hidden modules. The default is
259 for modules to be listable.
260
261 dit(bf(uid)) The "uid" option specifies the user name or user ID that
262 file transfers to and from that module should take place as when the daemon
263 was run as root. In combination with the "gid" option this determines what
264 file permissions are available. The default is uid -2, which is normally
265 the user "nobody".
266
267 dit(bf(gid)) The "gid" option specifies the group name or group ID that
268 file transfers to and from that module should take place as when the daemon
269 was run as root. This complements the "uid" option. The default is gid -2,
270 which is normally the group "nobody".
271
272 dit(bf(fake super)) Setting "fake super = yes" for a module causes the
273 daemon side to behave as if the bf(--fake-user) command-line option had
274 been specified.  This allows the full attributes of a file to be stored
275 without having to have the daemon actually running as root.
276
277 dit(bf(filter)) The "filter" option allows you to specify a space-separated
278 list of filter rules that the daemon will not allow to be read or written.
279 This is only superficially equivalent to the client specifying these
280 patterns with the bf(--filter) option.  Only one "filter" option may be
281 specified, but it may contain as many rules as you like, including
282 merge-file rules.  Note that per-directory merge-file rules do not provide
283 as much protection as global rules, but they can be used to make bf(--delete)
284 work better when a client downloads the daemon's files (if the per-dir
285 merge files are included in the transfer).
286
287 dit(bf(exclude)) The "exclude" option allows you to specify a
288 space-separated list of patterns that the daemon will not allow to be read
289 or written.  This is only superficially equivalent to the client
290 specifying these patterns with the bf(--exclude) option.  Only one "exclude"
291 option may be specified, but you can use "-" and "+" before patterns to
292 specify exclude/include.
293
294 Because this exclude list is not passed to the client it only applies on
295 the daemon: that is, it excludes files received by a client when receiving
296 from a daemon and files deleted on a daemon when sending to a daemon, but
297 it doesn't exclude files from being deleted on a client when receiving
298 from a daemon.
299
300 dit(bf(exclude from)) The "exclude from" option specifies a filename
301 on the daemon that contains exclude patterns, one per line.
302 This is only superficially equivalent
303 to the client specifying the bf(--exclude-from) option with an equivalent file.
304 See the "exclude" option above.
305
306 dit(bf(include)) The "include" option allows you to specify a
307 space-separated list of patterns which rsync should not exclude. This is
308 only superficially equivalent to the client specifying these patterns with
309 the bf(--include) option because it applies only on the daemon.  This is
310 useful as it allows you to build up quite complex exclude/include rules.
311 Only one "include" option may be specified, but you can use "+" and "-"
312 before patterns to switch include/exclude.  See the "exclude" option
313 above.
314
315 dit(bf(include from)) The "include from" option specifies a filename
316 on the daemon that contains include patterns, one per line. This is
317 only superficially equivalent to the client specifying the
318 bf(--include-from) option with a equivalent file.
319 See the "exclude" option above.
320
321 dit(bf(incoming chmod)) This option allows you to specify a set of
322 comma-separated chmod strings that will affect the permissions of all
323 incoming files (files that are being received by the daemon).  These
324 changes happen after all other permission calculations, and this will
325 even override destination-default and/or existing permissions when the
326 client does not specify bf(--perms).
327 See the description of the bf(--chmod) rsync option and the bf(chmod)(1)
328 manpage for information on the format of this string.
329
330 dit(bf(outgoing chmod)) This option allows you to specify a set of
331 comma-separated chmod strings that will affect the permissions of all
332 outgoing files (files that are being sent out from the daemon).  These
333 changes happen first, making the sent permissions appear to be different
334 than those stored in the filesystem itself.  For instance, you could
335 disable group write permissions on the server while having it appear to
336 be on to the clients.
337 See the description of the bf(--chmod) rsync option and the bf(chmod)(1)
338 manpage for information on the format of this string.
339
340 dit(bf(auth users)) The "auth users" option specifies a comma and
341 space-separated list of usernames that will be allowed to connect to
342 this module. The usernames do not need to exist on the local
343 system. The usernames may also contain shell wildcard characters. If
344 "auth users" is set then the client will be challenged to supply a
345 username and password to connect to the module. A challenge response
346 authentication protocol is used for this exchange. The plain text
347 usernames and passwords are stored in the file specified by the
348 "secrets file" option. The default is for all users to be able to
349 connect without a password (this is called "anonymous rsync").
350
351 See also the "CONNECTING TO AN RSYNC DAEMON OVER A REMOTE SHELL
352 PROGRAM" section in bf(rsync)(1) for information on how handle an
353 rsyncd.conf-level username that differs from the remote-shell-level
354 username when using a remote shell to connect to an rsync daemon.
355
356 dit(bf(secrets file)) The "secrets file" option specifies the name of
357 a file that contains the username:password pairs used for
358 authenticating this module. This file is only consulted if the "auth
359 users" option is specified. The file is line based and contains
360 username:password pairs separated by a single colon. Any line starting
361 with a hash (#) is considered a comment and is skipped. The passwords
362 can contain any characters but be warned that many operating systems
363 limit the length of passwords that can be typed at the client end, so
364 you may find that passwords longer than 8 characters don't work.
365
366 There is no default for the "secrets file" option, you must choose a name
367 (such as tt(/etc/rsyncd.secrets)).  The file must normally not be readable
368 by "other"; see "strict modes".
369
370 dit(bf(strict modes)) The "strict modes" option determines whether or not
371 the permissions on the secrets file will be checked.  If "strict modes" is
372 true, then the secrets file must not be readable by any user ID other
373 than the one that the rsync daemon is running under.  If "strict modes" is
374 false, the check is not performed.  The default is true.  This option
375 was added to accommodate rsync running on the Windows operating system.
376
377 dit(bf(hosts allow)) The "hosts allow" option allows you to specify a
378 list of patterns that are matched against a connecting clients
379 hostname and IP address. If none of the patterns match then the
380 connection is rejected.
381
382 Each pattern can be in one of five forms:
383
384 quote(itemization(
385   it() a dotted decimal IPv4 address of the form a.b.c.d, or an IPv6 address
386   of the form a:b:c::d:e:f. In this case the incoming machine's IP address
387   must match exactly.
388   it() an address/mask in the form ipaddr/n where ipaddr is the IP address
389   and n is the number of one bits in the netmask.  All IP addresses which
390   match the masked IP address will be allowed in.
391   it() an address/mask in the form ipaddr/maskaddr where ipaddr is the
392   IP address and maskaddr is the netmask in dotted decimal notation for IPv4,
393   or similar for IPv6, e.g. ffff:ffff:ffff:ffff:: instead of /64. All IP
394   addresses which match the masked IP address will be allowed in.
395   it() a hostname. The hostname as determined by a reverse lookup will
396   be matched (case insensitive) against the pattern. Only an exact
397   match is allowed in.
398   it() a hostname pattern using wildcards. These are matched using the
399   same rules as normal unix filename matching. If the pattern matches
400   then the client is allowed in.
401 ))
402
403 Note IPv6 link-local addresses can have a scope in the address specification:
404
405 quote(
406 tt(    fe80::1%link1)nl()
407 tt(    fe80::%link1/64)nl()
408 tt(    fe80::%link1/ffff:ffff:ffff:ffff::)nl()
409 )
410
411 You can also combine "hosts allow" with a separate "hosts deny"
412 option. If both options are specified then the "hosts allow" option s
413 checked first and a match results in the client being able to
414 connect. The "hosts deny" option is then checked and a match means
415 that the host is rejected. If the host does not match either the
416 "hosts allow" or the "hosts deny" patterns then it is allowed to
417 connect.
418
419 The default is no "hosts allow" option, which means all hosts can connect.
420
421 dit(bf(hosts deny)) The "hosts deny" option allows you to specify a
422 list of patterns that are matched against a connecting clients
423 hostname and IP address. If the pattern matches then the connection is
424 rejected. See the "hosts allow" option for more information.
425
426 The default is no "hosts deny" option, which means all hosts can connect.
427
428 dit(bf(ignore errors)) The "ignore errors" option tells rsyncd to
429 ignore I/O errors on the daemon when deciding whether to run the delete
430 phase of the transfer. Normally rsync skips the bf(--delete) step if any
431 I/O errors have occurred in order to prevent disastrous deletion due
432 to a temporary resource shortage or other I/O error. In some cases this
433 test is counter productive so you can use this option to turn off this
434 behavior.
435
436 dit(bf(ignore nonreadable)) This tells the rsync daemon to completely
437 ignore files that are not readable by the user. This is useful for
438 public archives that may have some non-readable files among the
439 directories, and the sysadmin doesn't want those files to be seen at all.
440
441 dit(bf(transfer logging)) The "transfer logging" option enables per-file
442 logging of downloads and uploads in a format somewhat similar to that
443 used by ftp daemons.  The daemon always logs the transfer at the end, so
444 if a transfer is aborted, no mention will be made in the log file.
445
446 If you want to customize the log lines, see the "log format" option.
447
448 dit(bf(log format)) The "log format" option allows you to specify the
449 format used for logging file transfers when transfer logging is enabled.
450 The format is a text string containing embedded single-character escape
451 sequences prefixed with a percent (%) character.  An optional numeric
452 field width may also be specified between the percent and the escape
453 letter (e.g. "bf(%-50n %8l %07p)").
454
455 The default log format is "%o %h [%a] %m (%u) %f %l", and a "%t [%p] "
456 is always prefixed when using the "log file" option.
457 (A perl script that will summarize this default log format is included
458 in the rsync source code distribution in the "support" subdirectory:
459 rsyncstats.)
460
461 The single-character escapes that are understood are as follows:
462
463 quote(itemization(
464   it() %a the remote IP address
465   it() %b the number of bytes actually transferred
466   it() %B the permission bits of the file (e.g. rwxrwxrwt)
467   it() %c the checksum bytes received for this file (only when sending)
468   it() %f the filename (long form on sender; no trailing "/")
469   it() %G the gid of the file (decimal) or "DEFAULT"
470   it() %h the remote host name
471   it() %i an itemized list of what is being updated
472   it() %l the length of the file in bytes
473   it() %L the string " -> SYMLINK", " => HARDLINK", or "" (where bf(SYMLINK) or bf(HARDLINK) is a filename)
474   it() %m the module name
475   it() %M the last-modified time of the file
476   it() %n the filename (short form; trailing "/" on dir)
477   it() %o the operation, which is "send", "recv", or "del." (the latter includes the trailing period)
478   it() %p the process ID of this rsync session
479   it() %P the module path
480   it() %t the current date time
481   it() %u the authenticated username or an empty string
482   it() %U the uid of the file (decimal)
483 ))
484
485 For a list of what the characters mean that are output by "%i", see the
486 bf(--itemize-changes) option in the rsync manpage.
487
488 Note that some of the logged output changes when talking with older
489 rsync versions.  For instance, deleted files were only output as verbose
490 messages prior to rsync 2.6.4.
491
492 dit(bf(timeout)) The "timeout" option allows you to override the
493 clients choice for I/O timeout for this module. Using this option you
494 can ensure that rsync won't wait on a dead client forever. The timeout
495 is specified in seconds. A value of zero means no timeout and is the
496 default. A good choice for anonymous rsync daemons may be 600 (giving
497 a 10 minute timeout).
498
499 dit(bf(refuse options)) The "refuse options" option allows you to
500 specify a space-separated list of rsync command line options that will
501 be refused by your rsync daemon.
502 You may specify the full option name, its one-letter abbreviation, or a
503 wild-card string that matches multiple options.
504 For example, this would refuse bf(--checksum) (bf(-c)) and all the various
505 delete options:
506
507 quote(tt(    refuse options = c delete))
508
509 The reason the above refuses all delete options is that the options imply
510 bf(--delete), and implied options are refused just like explicit options.
511 As an additional safety feature, the refusal of "delete" also refuses
512 bf(remove-sent-files) when the daemon is the sender; if you want the latter
513 without the former, instead refuse "delete-*" -- that refuses all the
514 delete modes without affecting bf(--remove-sent-files).
515
516 When an option is refused, the daemon prints an error message and exits.
517 To prevent all compression when serving files,
518 you can use "dont compress = *" (see below)
519 instead of "refuse options = compress" to avoid returning an error to a
520 client that requests compression.
521
522 dit(bf(dont compress)) The "dont compress" option allows you to select
523 filenames based on wildcard patterns that should not be compressed
524 when pulling files from the daemon (no analogous option exists to
525 govern the pushing of files to a daemon).
526 Compression is expensive in terms of CPU usage, so it
527 is usually good to not try to compress files that won't compress well,
528 such as already compressed files.
529
530 The "dont compress" option takes a space-separated list of
531 case-insensitive wildcard patterns. Any source filename matching one
532 of the patterns will not be compressed during transfer.
533
534 See the bf(--skip-compress) option in the bf(rsync)(1) manpage for the list
535 of file suffixes that are not compressed by default.  Specifying a value
536 for the bf(dont compress) option changes the default when the daemon is
537 the sender.
538
539 dit(bf(pre-xfer exec), bf(post-xfer exec)) You may specify a command to be run
540 before and/or after the transfer.  If the bf(pre-xfer exec) command fails, the
541 transfer is aborted before it begins.
542
543 The following environment variables will be set, though some are
544 specific to the pre-xfer or the post-xfer environment:
545
546 quote(itemization(
547   it() bf(RSYNC_MODULE_NAME): The name of the module being accessed.
548   it() bf(RSYNC_MODULE_PATH): The path configured for the module.
549   it() bf(RSYNC_HOST_ADDR): The accessing host's IP address.
550   it() bf(RSYNC_HOST_NAME): The accessing host's name.
551   it() bf(RSYNC_USER_NAME): The accessing user's name (empty if no user).
552   it() bf(RSYNC_PID): A unique number for this transfer.
553   it() bf(RSYNC_REQUEST): (pre-xfer only) The module/path info specified
554   by the user (note that the user can specify multiple source files,
555   so the request can be something like "mod/path1 mod/path2", etc.).
556   it() bf(RSYNC_ARG#): (pre-xfer only) The pre-request arguments are set
557   in these numbered values. RSYNC_ARG0 is always "rsyncd", and the last
558   value contains a single period.
559   it() bf(RSYNC_EXIT_STATUS): (post-xfer only) the server side's exit value.
560   This will be 0 for a successful run, a positive value for an error that the
561   server generated, or a -1 if rsync failed to exit properly.  Note that an
562   error that occurs on the client side does not currently get sent to the
563   server side, so this is not the final exit status for the whole transfer.
564   it() bf(RSYNC_RAW_STATUS): (post-xfer only) the raw exit value from code(waitpid()).
565 ))
566
567 Even though the commands can be associated with a particular module, they
568 are run using the permissions of the user that started the daemon (not the
569 module's uid/gid setting) without any chroot restrictions.
570
571 enddit()
572
573 manpagesection(AUTHENTICATION STRENGTH)
574
575 The authentication protocol used in rsync is a 128 bit MD4 based
576 challenge response system. This is fairly weak protection, though (with
577 at least one brute-force hash-finding algorithm publicly available), so
578 if you want really top-quality security, then I recommend that you run
579 rsync over ssh.  (Yes, a future version of rsync will switch over to a
580 stronger hashing method.)
581
582 Also note that the rsync daemon protocol does not currently provide any
583 encryption of the data that is transferred over the connection. Only
584 authentication is provided. Use ssh as the transport if you want
585 encryption.
586
587 Future versions of rsync may support SSL for better authentication and
588 encryption, but that is still being investigated.
589
590 manpagesection(EXAMPLES)
591
592 A simple rsyncd.conf file that allow anonymous rsync to a ftp area at
593 tt(/home/ftp) would be:
594
595 verb(
596 [ftp]
597         path = /home/ftp
598         comment = ftp export area
599 )
600
601 A more sophisticated example would be:
602
603 verb(
604 uid = nobody
605 gid = nobody
606 use chroot = no
607 max connections = 4
608 syslog facility = local5
609 pid file = /var/run/rsyncd.pid
610
611 [ftp]
612         path = /var/ftp/pub
613         comment = whole ftp area (approx 6.1 GB)
614
615 [sambaftp]
616         path = /var/ftp/pub/samba
617         comment = Samba ftp area (approx 300 MB)
618
619 [rsyncftp]
620         path = /var/ftp/pub/rsync
621         comment = rsync ftp area (approx 6 MB)
622
623 [sambawww]
624         path = /public_html/samba
625         comment = Samba WWW pages (approx 240 MB)
626
627 [cvs]
628         path = /data/cvs
629         comment = CVS repository (requires authentication)
630         auth users = tridge, susan
631         secrets file = /etc/rsyncd.secrets
632 )
633
634 The /etc/rsyncd.secrets file would look something like this:
635
636 quote(
637 tt(tridge:mypass)nl()
638 tt(susan:herpass)nl()
639 )
640
641 manpagefiles()
642
643 /etc/rsyncd.conf or rsyncd.conf
644
645 manpageseealso()
646
647 bf(rsync)(1)
648
649 manpagediagnostics()
650
651 manpagebugs()
652
653 Please report bugs! The rsync bug tracking system is online at
654 url(http://rsync.samba.org/)(http://rsync.samba.org/)
655
656 manpagesection(VERSION)
657
658 This man page is current for version 3.0.0pre9 of rsync.
659
660 manpagesection(CREDITS)
661
662 rsync is distributed under the GNU public license.  See the file
663 COPYING for details.
664
665 The primary ftp site for rsync is
666 url(ftp://rsync.samba.org/pub/rsync)(ftp://rsync.samba.org/pub/rsync).
667
668 A WEB site is available at
669 url(http://rsync.samba.org/)(http://rsync.samba.org/)
670
671 We would be delighted to hear from you if you like this program.
672
673 This program uses the zlib compression library written by Jean-loup
674 Gailly and Mark Adler.
675
676 manpagesection(THANKS)
677
678 Thanks to Warren Stanley for his original idea and patch for the rsync
679 daemon. Thanks to Karsten Thygesen for his many suggestions and
680 documentation!
681
682 manpageauthor()
683
684 rsync was written by Andrew Tridgell and Paul Mackerras.
685 Many people have later contributed to it.
686
687 Mailing lists for support and development are available at
688 url(http://lists.samba.org)(lists.samba.org)