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/
 


Tags:

rsync, preserve, attributes, permissions, ownership, userone, purposes, filesystems, archive, restore, ownerships, preserved, filesystem, desirable, users, sudo, edit, etc, sudoers, quot, username, nopasswd, usr, bin, allows, requiring, password, automated, backups, ensures, user, eg, pha, errors, exclude, proc, sys, destination,

Latest Articles

  • python mysql install error: /bin/sh: 1: mysql_config: not found /bin/sh: 1: mariadb_config: not found /bin/sh: 1: mysql_config: not found mysql_config --version
  • FreePBX 17 How To Add a Trunk
  • Docker Container Onboot Policy - How to make sure a container is always running
  • FreePBX 17 How To Add Phones / Extensions and Register
  • Warning: The driver descriptor says the physical block size is 2048 bytes, but Linux says it is 512 bytes. solution
  • Cisco How To Use a Third Party SIP Phone (eg. Avaya, 3CX)
  • Cisco Unified Communication Manager (CUCM) - How To Add Phones
  • pptp / pptpd not working in DD-WRT iptables / router
  • systemd-journald high memory usage solution
  • How to Install FreePBX 17 in Linux Debian Ubuntu Mint Guide
  • How To Install Cisco's CUCM (Cisco Unified Communication Manager) 12 Guide
  • Linux Ubuntu Redhat How To Extract Images from PDF
  • Linux and Windows Dual Boot Issue NIC Won't work After Booting Windows
  • Cisco CME How To Enable ACD hunt groups
  • How to install gns3 on Linux Ubuntu Mint
  • How to convert audio for Asterisk .wav format
  • Using Cisco CME Router with Asterisk as a dial-peer
  • Cisco CME How To Configure SIP Trunk VOIP
  • Virtualbox host Only Network Error Failed to save host network interface parameter - Cannot change gateway IP of host only network
  • Cisco CME and C7200 Router Testing and Learning Environment on Ubuntu 20+ Setup Tutorial Guide