rsync preserve attributes, permissions/ownership and times without being root non-root user

One of the purposes of rsync is to backup whole filesystems and archive them but how can you do that properly and restore things to normal if all permissions and ownerships are not preserved from your root filesystem?

It's not desirable to have everything running as root, especially not just for an rsync.

The Easy rsync preserve permission solution for non-root users

sudo is the answer and all you have to do is edit /etc/sudoers

At the end of the file add a line like below (on both source and all target rsync systems).

*Replace "username" with your actual username of course

username  ALL = NOPASSWD: /usr/bin/rsync

The "NOPASSWD" part does as you'd expect, it allows you to sudo to the rsync command without requiring any password, otherwise it would be impossible to script this process and would make rsync useless for automated backups.

Make sure you add the following when running your rsync backup:

--rsync-path="sudo rsync"

That flag ensures that the ownership and permissions can be preserved even as root on the target system for your non-root user.

Also remember on the source systems to always run rsync with sudo

Eg.

sudo rsync -Pha --rsync-path="sudo rsync" --ignore-errors --exclude=/media  --exclude=/proc/* --exclude=/sys/* / user@destination:/location/
 

Latest Articles

  • failed to IDENTIFY (INIT_DEV_PARAMS failed, err_mask=0x80)
  • pcnet32: eth0: transmit timed out, status 97fb, resetting - NIC card problem solution
  • Linux Screen How To Scroll Up and Down
  • Directadmin Install Segfault Error
  • Could not display "trash:///". Error: DBus error org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout
  • SSH error slow login debug1: An invalid name was supplied Cannot determine realm for numeric host address - Solution
  • How To Install CPanel
  • LOG: MAIN PANIC failed to expand condition "${if eq {$authenticated_id}{}{0}{${if eq {$sender_address}{$local_part@$domain}{0}{${if match{$received_protocol}{N^e?smtps?a$N}{${perl{checkbx_autowhitelist}{$authenticated_id}}}{${if eq{$received_prot
  • Firefox 11 closes/quits without saving Open Tabs Prompt Solution/Fix
  • Firefox 11 stop hiding http:// and https:// solution fix
  • The Importance of a High Quality Power Supply/Power Supplies To Prevent Overheating/System Crash/Hardware Damage
  • Asus VE247H 23.7" Inch LCD/LED Backlit Monitor Dead/Stuck Pixel Policy Complaint
  • Firefox Error ./firefox-bin: error while loading shared libraries: libxul.so: cannot open shared object file: No such file or directory
  • Linux Ubuntu Nvidia GT430 Lockups/Errors/Freezes NVRM: os_schedule: Attempted to yield the CPU while in atomic or interrupt context
  • Xen how to mount disk images off-line and access data
  • Xen non-HVM container won't work/boot anymore
  • how to exit xen console session from xm
  • Skype Linux/Ubuntu Sound Echo/Distortion Poor Quality Problem Fix Solution
  • Ubuntu 10.04 Flash Videos have tearing/lines Solution
  • File /etc/vz/conf/ve-vps.basic.conf-sample not found: No such file or directory - Openvz Error solution