Created attachment 13248 [details]
Here is a patch which adds 3 new parameters to rsyncd.conf :
The first one is a path to a directory the daemon itself will chroot to before beginning communication with clients.
The 2 others are the uid/gid the daemon itself will switch to before beginning communication with clients.
These parameters can improve security.
For example, using daemon via a restricted remote-shell connection, for security reasons, if we want whole rsync to be chrooted, we can now use :
daemon chroot = /home/%SUDO_USER%/rsync/
daemon uid = %SUDO_UID%
daemon gid = %SUDO_GID%
With of course rsync being sudo-called by the restricted shell (to configure properly).
We could already do this without this patch, using the "use chroot" parameter, but then the daemon itself is not chrooted and remains run by root.
Thank you !
Created attachment 13249 [details]
Minor issue corrected : do not forget to init log before chrooting.
Created attachment 13250 [details]
Minor issue corrected : do not forget to init log before chrooting + typo.
Created attachment 13251 [details]
Minor issue corrected : do not forget to not sanitize_paths if daemon is chrooted.
Thanks for the patch! I've tweaked it a little bit and committed it to git.
Many thanks Wayne for having reworked & merged it !