From dc964a4c9a948744c56dc02c6fa6c8d588fa74b2 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 3 Jul 2008 11:34:34 +0200 Subject: [PATCH] Only run chmod if we are root. --- src/csync_propagate.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/csync_propagate.c b/src/csync_propagate.c index 1f0bab3b9..ec543562a 100644 --- a/src/csync_propagate.c +++ b/src/csync_propagate.c @@ -282,7 +282,9 @@ static int _csync_push_file(CSYNC *ctx, csync_file_stat_t *st) { } /* set owner and group if possible */ - csync_vio_chown(ctx, duri, st->uid, st->gid); + if (geteuid() == 0) { + csync_vio_chown(ctx, duri, st->uid, st->gid); + } /* sync time */ times[0].tv_sec = times[1].tv_sec = st->modtime; @@ -443,7 +445,9 @@ static int _csync_new_dir(CSYNC *ctx, csync_file_stat_t *st) { } /* set owner and group if possible */ - csync_vio_chown(ctx, uri, st->uid, st->gid); + if (geteuid() == 0) { + csync_vio_chown(ctx, uri, st->uid, st->gid); + } times[0].tv_sec = times[1].tv_sec = st->modtime; times[0].tv_usec = times[1].tv_usec = 0; @@ -512,7 +516,9 @@ static int _csync_sync_dir(CSYNC *ctx, csync_file_stat_t *st) { } /* set owner and group if possible */ - csync_vio_chown(ctx, uri, st->uid, st->gid); + if (geteuid() == 0) { + csync_vio_chown(ctx, uri, st->uid, st->gid); + } times[0].tv_sec = times[1].tv_sec = st->modtime; times[0].tv_usec = times[1].tv_usec = 0;