summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordogvisor <13217529+dogvisor@users.noreply.github.com>2023-03-30 21:55:56 +0200
committerGitHub <noreply@github.com>2023-03-30 12:55:56 -0700
commit2c82006b1fcddcdfb12aceb838f4dff7531b6a7c (patch)
treef0aab3557cf2504a0c8e2e68e24a452ef4f471bb
parent0698ea9aeb4044d615dc0ff2c6da24cea1bcc98e (diff)
downloadrsync-2c82006b1fcddcdfb12aceb838f4dff7531b6a7c.tar.gz
add rrsync option to enforce `--ignore-existing` (#461)
The `-no-overwrite` rrsync option disallows the updating of existing files for incoming rrsync copies.
-rwxr-xr-xsupport/rrsync4
-rw-r--r--support/rrsync.1.md7
2 files changed, 10 insertions, 1 deletions
diff --git a/support/rrsync b/support/rrsync
index 94c85f59..4b4b87c5 100755
--- a/support/rrsync
+++ b/support/rrsync
@@ -258,6 +258,9 @@ def main():
if args.munge:
rsync_opts.append('--munge-links')
+
+ if args.no_overwrite:
+ rsync_opts.append('--ignore-existing')
if not rsync_args:
rsync_args = [ '.' ]
@@ -364,6 +367,7 @@ if __name__ == '__main__':
arg_parser.add_argument('-munge', action='store_true', help="Enable rsync's --munge-links on the server side.")
arg_parser.add_argument('-no-del', action='store_true', help="Disable rsync's --delete* and --remove* options.")
arg_parser.add_argument('-no-lock', action='store_true', help="Avoid the single-run (per-user) lock check.")
+ arg_parser.add_argument('-no-overwrite', action='store_true', help="Prevent overwriting existing files by enforcing --ignore-existing")
arg_parser.add_argument('-help', '-h', action='help', help="Output this help message and exit.")
arg_parser.add_argument('dir', metavar='DIR', help="The restricted directory to use.")
args = arg_parser.parse_args()
diff --git a/support/rrsync.1.md b/support/rrsync.1.md
index 98f2cab0..24892900 100644
--- a/support/rrsync.1.md
+++ b/support/rrsync.1.md
@@ -5,7 +5,7 @@ rrsync - a script to setup restricted rsync users via ssh logins
## SYNOPSIS
```
-rrsync [-ro|-rw] [-munge] [-no-del] [-no-lock] DIR
+rrsync [-ro|-rw] [-munge] [-no-del] [-no-lock] [-no-overwrite] DIR
```
The single non-option argument specifies the restricted _DIR_ to use. It can be
@@ -85,6 +85,11 @@ The remainder of this manpage is dedicated to using the rrsync script.
Avoid the single-run (per-user) lock check. Useful with [`-munge`](#opt).
+0. `-no-overwrite`
+
+ Enforce `--ignore-existing` on the server. Prevents overwriting existing
+ files when the server is the receiver.
+
0. `-help`, `-h`
Output this help message and exit.