Preserving file and folder permissions with rsync Announcing the arrival of Valued Associate...

Retract an already submitted Recommendation Letter (written for an undergrad student)

Philosophers who were composers?

Israeli soda type drink

Preserving file and folder permissions with rsync

Bright yellow or light yellow?

Why did Israel vote against lifting the American embargo on Cuba?

When does Bran Stark remember Jamie pushing him?

How to keep bees out of canned beverages?

Simulate round-robin tournament draw

Is there a way to fake a method response using Mock or Stubs?

Determinant of a matrix with 2 equal rows

Is it OK if I do not take the receipt in Germany?

`FindRoot [ ]`::jsing: Encountered a singular Jacobian at a point...WHY

Why is water being consumed when my shutoff valve is closed?

RIP Packet Format

Test if all elements of a Foldable are the same

How would you suggest I follow up with coworkers about our deadline that's today?

Is there a possibility to generate a list dynamically in Latex?

Is Bran literally the world's memory?

Why did Europeans not widely domesticate foxes?

Writing a T-SQL stored procedure to receive 4 numbers and insert them into a table

How long can a nation maintain a technological edge over the rest of the world?

What is a 'Key' in computer science?

Married in secret, can marital status in passport be changed at a later date?



Preserving file and folder permissions with rsync



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30 pm US/Eastern)
Come Celebrate our 10 Year Anniversary!How to setup linux permissions for the WWW folder?Rsync Permissions from One Server to Another - Mkdir Permission denied (13)sshd_config ForceCommand /usr/bin/rsync error “connection unexpectedly closed”command parameter in .ssh/authorized_keysRsync + public key authentication securityrsync backup remote server maintaining groups and ownerBackup maildir to windows cifs sharersync maintaining ownership and permissions between linux and windows sshRsync to remote server and change file / directory ownershipsWhy does rsync+cron fail with opendir permission denied?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







4















I maintain a backup of my email accounts using this command:



sudo rsync -av --delete --progress -e "ssh -p pNumber" --rsync-path="/usr/bin/rsync" /vmail/ user@my_backup_server:/home/user/backups/vmail/



Source:
Most email folders are owned by user vmail.



Destination (backup server):
System doesn't have a user named vmail.



My question, would the above command preserve file and directory permissions even if destination machine doesn't have a user named vmail? Would it be possible to restore the files and permissions completely from destination to source even if the user names between the two machines are not the same (some missing on backup server).










share|improve this question





























    4















    I maintain a backup of my email accounts using this command:



    sudo rsync -av --delete --progress -e "ssh -p pNumber" --rsync-path="/usr/bin/rsync" /vmail/ user@my_backup_server:/home/user/backups/vmail/



    Source:
    Most email folders are owned by user vmail.



    Destination (backup server):
    System doesn't have a user named vmail.



    My question, would the above command preserve file and directory permissions even if destination machine doesn't have a user named vmail? Would it be possible to restore the files and permissions completely from destination to source even if the user names between the two machines are not the same (some missing on backup server).










    share|improve this question

























      4












      4








      4


      1






      I maintain a backup of my email accounts using this command:



      sudo rsync -av --delete --progress -e "ssh -p pNumber" --rsync-path="/usr/bin/rsync" /vmail/ user@my_backup_server:/home/user/backups/vmail/



      Source:
      Most email folders are owned by user vmail.



      Destination (backup server):
      System doesn't have a user named vmail.



      My question, would the above command preserve file and directory permissions even if destination machine doesn't have a user named vmail? Would it be possible to restore the files and permissions completely from destination to source even if the user names between the two machines are not the same (some missing on backup server).










      share|improve this question














      I maintain a backup of my email accounts using this command:



      sudo rsync -av --delete --progress -e "ssh -p pNumber" --rsync-path="/usr/bin/rsync" /vmail/ user@my_backup_server:/home/user/backups/vmail/



      Source:
      Most email folders are owned by user vmail.



      Destination (backup server):
      System doesn't have a user named vmail.



      My question, would the above command preserve file and directory permissions even if destination machine doesn't have a user named vmail? Would it be possible to restore the files and permissions completely from destination to source even if the user names between the two machines are not the same (some missing on backup server).







      linux backup permissions rsync






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 12 hours ago









      W.M.W.M.

      1253




      1253






















          2 Answers
          2






          active

          oldest

          votes


















          3














          What rsync copies is the numerical user id of the file, regardless if it exists on the target system. If a user with that id doesn't exist, ls etc. will just show that number instead of a name. If that user id belongs to another username on the target system, this user will now own the file.



          Backup and restore will work without a problem in this scenario.






          share|improve this answer



















          • 2





            By default rsync will use the username and groupname to determine what ownership to give files on the remote system, not the UID/GID numbers. If a user or group has no name on the source system or it has no match on the destination system, only then the numeric ID from the source system will be used.

            – HBruijn
            11 hours ago





















          5














          How rsync preserves ownership of files depends on two things:




          • Are you super-user (root) on the destination?

            Otherwise you can't create files and directories with a different user other than your own.


          • Which option flags are you using?



          The -a option includes the -o, --owner, -g, --group options designed to preserve ownership.



          At the file-system level user and group ownership is stored in UID resp. GID numbers. When there is no mapping from UID/GID's to usernames and groupnames tools will simply display those numbers instead.

          Users and groups with the same names can have different UID/GID numbers on different systems.



          By default rsync will try to match the ownership by username resp. groupname. In other words when the user vmail is the owner of a file at the source, rsync will make the user vmail also the owner at the destination (even when they have different UID/GID numbers).

          That is usually quite resilient and the most predictable for humans as we normally don't look at ownership in the form of UID/GID numbers.



          When no matching user vmail is present on the remote destination, then a fall-back scenario will happen. Rsync will then preserve the actual underlying UID/GID numbers and the UID number of the vmail user on the source will used to set the owner.



          That should preserver the correct ownership when you reverse the rsync direction and restore the backup.



          man rsync :



             -o, --owner
          This option causes rsync to set the owner of the destination file to be the same as the source file,
          but only if the receiving rsync is being run as the super-user (see also the --super and --fake-super
          options). Without this option, the owner of new and/or transferred files are set to the invoking user
          on the receiving side.

          The preservation of ownership will associate matching names by default, but may fall back to using the
          ID number in some circumstances (see also the --numeric-ids option for a full discussion).


          --numeric-ids
          With this option rsync will transfer numeric group and user IDs rather than using user and group names
          and mapping them at both ends.

          By default rsync will use the username and groupname to determine what ownership to give files. The
          special uid 0 and the special group 0 are never mapped via user/group names even if the --numeric-ids
          option is not specified.

          If a user or group has no name on the source system or it has no match on the destination system, then
          the numeric ID from the source system is used instead. See also the comments on the "use chroot" set‐
          ting in the rsyncd.conf manpage for information on how the chroot setting affects rsync’s ability to
          look up the names of the users and groups and what you can do about it.





          share|improve this answer


























          • Thanks for the detailed answer. So, you're saying that I should connect (login) to the destination machine (backup server) as root and not as a normal user?

            – W.M.
            10 hours ago






          • 2





            As a normal user you can't create files that don't belong to you, so you need to either log in as root on the destination, or you have to be root locally and run rsync in the opposite direction and pull the files in.

            – HBruijn
            10 hours ago












          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "2"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f964229%2fpreserving-file-and-folder-permissions-with-rsync%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          3














          What rsync copies is the numerical user id of the file, regardless if it exists on the target system. If a user with that id doesn't exist, ls etc. will just show that number instead of a name. If that user id belongs to another username on the target system, this user will now own the file.



          Backup and restore will work without a problem in this scenario.






          share|improve this answer



















          • 2





            By default rsync will use the username and groupname to determine what ownership to give files on the remote system, not the UID/GID numbers. If a user or group has no name on the source system or it has no match on the destination system, only then the numeric ID from the source system will be used.

            – HBruijn
            11 hours ago


















          3














          What rsync copies is the numerical user id of the file, regardless if it exists on the target system. If a user with that id doesn't exist, ls etc. will just show that number instead of a name. If that user id belongs to another username on the target system, this user will now own the file.



          Backup and restore will work without a problem in this scenario.






          share|improve this answer



















          • 2





            By default rsync will use the username and groupname to determine what ownership to give files on the remote system, not the UID/GID numbers. If a user or group has no name on the source system or it has no match on the destination system, only then the numeric ID from the source system will be used.

            – HBruijn
            11 hours ago
















          3












          3








          3







          What rsync copies is the numerical user id of the file, regardless if it exists on the target system. If a user with that id doesn't exist, ls etc. will just show that number instead of a name. If that user id belongs to another username on the target system, this user will now own the file.



          Backup and restore will work without a problem in this scenario.






          share|improve this answer













          What rsync copies is the numerical user id of the file, regardless if it exists on the target system. If a user with that id doesn't exist, ls etc. will just show that number instead of a name. If that user id belongs to another username on the target system, this user will now own the file.



          Backup and restore will work without a problem in this scenario.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 12 hours ago









          SvenSven

          87.9k10148202




          87.9k10148202








          • 2





            By default rsync will use the username and groupname to determine what ownership to give files on the remote system, not the UID/GID numbers. If a user or group has no name on the source system or it has no match on the destination system, only then the numeric ID from the source system will be used.

            – HBruijn
            11 hours ago
















          • 2





            By default rsync will use the username and groupname to determine what ownership to give files on the remote system, not the UID/GID numbers. If a user or group has no name on the source system or it has no match on the destination system, only then the numeric ID from the source system will be used.

            – HBruijn
            11 hours ago










          2




          2





          By default rsync will use the username and groupname to determine what ownership to give files on the remote system, not the UID/GID numbers. If a user or group has no name on the source system or it has no match on the destination system, only then the numeric ID from the source system will be used.

          – HBruijn
          11 hours ago







          By default rsync will use the username and groupname to determine what ownership to give files on the remote system, not the UID/GID numbers. If a user or group has no name on the source system or it has no match on the destination system, only then the numeric ID from the source system will be used.

          – HBruijn
          11 hours ago















          5














          How rsync preserves ownership of files depends on two things:




          • Are you super-user (root) on the destination?

            Otherwise you can't create files and directories with a different user other than your own.


          • Which option flags are you using?



          The -a option includes the -o, --owner, -g, --group options designed to preserve ownership.



          At the file-system level user and group ownership is stored in UID resp. GID numbers. When there is no mapping from UID/GID's to usernames and groupnames tools will simply display those numbers instead.

          Users and groups with the same names can have different UID/GID numbers on different systems.



          By default rsync will try to match the ownership by username resp. groupname. In other words when the user vmail is the owner of a file at the source, rsync will make the user vmail also the owner at the destination (even when they have different UID/GID numbers).

          That is usually quite resilient and the most predictable for humans as we normally don't look at ownership in the form of UID/GID numbers.



          When no matching user vmail is present on the remote destination, then a fall-back scenario will happen. Rsync will then preserve the actual underlying UID/GID numbers and the UID number of the vmail user on the source will used to set the owner.



          That should preserver the correct ownership when you reverse the rsync direction and restore the backup.



          man rsync :



             -o, --owner
          This option causes rsync to set the owner of the destination file to be the same as the source file,
          but only if the receiving rsync is being run as the super-user (see also the --super and --fake-super
          options). Without this option, the owner of new and/or transferred files are set to the invoking user
          on the receiving side.

          The preservation of ownership will associate matching names by default, but may fall back to using the
          ID number in some circumstances (see also the --numeric-ids option for a full discussion).


          --numeric-ids
          With this option rsync will transfer numeric group and user IDs rather than using user and group names
          and mapping them at both ends.

          By default rsync will use the username and groupname to determine what ownership to give files. The
          special uid 0 and the special group 0 are never mapped via user/group names even if the --numeric-ids
          option is not specified.

          If a user or group has no name on the source system or it has no match on the destination system, then
          the numeric ID from the source system is used instead. See also the comments on the "use chroot" set‐
          ting in the rsyncd.conf manpage for information on how the chroot setting affects rsync’s ability to
          look up the names of the users and groups and what you can do about it.





          share|improve this answer


























          • Thanks for the detailed answer. So, you're saying that I should connect (login) to the destination machine (backup server) as root and not as a normal user?

            – W.M.
            10 hours ago






          • 2





            As a normal user you can't create files that don't belong to you, so you need to either log in as root on the destination, or you have to be root locally and run rsync in the opposite direction and pull the files in.

            – HBruijn
            10 hours ago
















          5














          How rsync preserves ownership of files depends on two things:




          • Are you super-user (root) on the destination?

            Otherwise you can't create files and directories with a different user other than your own.


          • Which option flags are you using?



          The -a option includes the -o, --owner, -g, --group options designed to preserve ownership.



          At the file-system level user and group ownership is stored in UID resp. GID numbers. When there is no mapping from UID/GID's to usernames and groupnames tools will simply display those numbers instead.

          Users and groups with the same names can have different UID/GID numbers on different systems.



          By default rsync will try to match the ownership by username resp. groupname. In other words when the user vmail is the owner of a file at the source, rsync will make the user vmail also the owner at the destination (even when they have different UID/GID numbers).

          That is usually quite resilient and the most predictable for humans as we normally don't look at ownership in the form of UID/GID numbers.



          When no matching user vmail is present on the remote destination, then a fall-back scenario will happen. Rsync will then preserve the actual underlying UID/GID numbers and the UID number of the vmail user on the source will used to set the owner.



          That should preserver the correct ownership when you reverse the rsync direction and restore the backup.



          man rsync :



             -o, --owner
          This option causes rsync to set the owner of the destination file to be the same as the source file,
          but only if the receiving rsync is being run as the super-user (see also the --super and --fake-super
          options). Without this option, the owner of new and/or transferred files are set to the invoking user
          on the receiving side.

          The preservation of ownership will associate matching names by default, but may fall back to using the
          ID number in some circumstances (see also the --numeric-ids option for a full discussion).


          --numeric-ids
          With this option rsync will transfer numeric group and user IDs rather than using user and group names
          and mapping them at both ends.

          By default rsync will use the username and groupname to determine what ownership to give files. The
          special uid 0 and the special group 0 are never mapped via user/group names even if the --numeric-ids
          option is not specified.

          If a user or group has no name on the source system or it has no match on the destination system, then
          the numeric ID from the source system is used instead. See also the comments on the "use chroot" set‐
          ting in the rsyncd.conf manpage for information on how the chroot setting affects rsync’s ability to
          look up the names of the users and groups and what you can do about it.





          share|improve this answer


























          • Thanks for the detailed answer. So, you're saying that I should connect (login) to the destination machine (backup server) as root and not as a normal user?

            – W.M.
            10 hours ago






          • 2





            As a normal user you can't create files that don't belong to you, so you need to either log in as root on the destination, or you have to be root locally and run rsync in the opposite direction and pull the files in.

            – HBruijn
            10 hours ago














          5












          5








          5







          How rsync preserves ownership of files depends on two things:




          • Are you super-user (root) on the destination?

            Otherwise you can't create files and directories with a different user other than your own.


          • Which option flags are you using?



          The -a option includes the -o, --owner, -g, --group options designed to preserve ownership.



          At the file-system level user and group ownership is stored in UID resp. GID numbers. When there is no mapping from UID/GID's to usernames and groupnames tools will simply display those numbers instead.

          Users and groups with the same names can have different UID/GID numbers on different systems.



          By default rsync will try to match the ownership by username resp. groupname. In other words when the user vmail is the owner of a file at the source, rsync will make the user vmail also the owner at the destination (even when they have different UID/GID numbers).

          That is usually quite resilient and the most predictable for humans as we normally don't look at ownership in the form of UID/GID numbers.



          When no matching user vmail is present on the remote destination, then a fall-back scenario will happen. Rsync will then preserve the actual underlying UID/GID numbers and the UID number of the vmail user on the source will used to set the owner.



          That should preserver the correct ownership when you reverse the rsync direction and restore the backup.



          man rsync :



             -o, --owner
          This option causes rsync to set the owner of the destination file to be the same as the source file,
          but only if the receiving rsync is being run as the super-user (see also the --super and --fake-super
          options). Without this option, the owner of new and/or transferred files are set to the invoking user
          on the receiving side.

          The preservation of ownership will associate matching names by default, but may fall back to using the
          ID number in some circumstances (see also the --numeric-ids option for a full discussion).


          --numeric-ids
          With this option rsync will transfer numeric group and user IDs rather than using user and group names
          and mapping them at both ends.

          By default rsync will use the username and groupname to determine what ownership to give files. The
          special uid 0 and the special group 0 are never mapped via user/group names even if the --numeric-ids
          option is not specified.

          If a user or group has no name on the source system or it has no match on the destination system, then
          the numeric ID from the source system is used instead. See also the comments on the "use chroot" set‐
          ting in the rsyncd.conf manpage for information on how the chroot setting affects rsync’s ability to
          look up the names of the users and groups and what you can do about it.





          share|improve this answer















          How rsync preserves ownership of files depends on two things:




          • Are you super-user (root) on the destination?

            Otherwise you can't create files and directories with a different user other than your own.


          • Which option flags are you using?



          The -a option includes the -o, --owner, -g, --group options designed to preserve ownership.



          At the file-system level user and group ownership is stored in UID resp. GID numbers. When there is no mapping from UID/GID's to usernames and groupnames tools will simply display those numbers instead.

          Users and groups with the same names can have different UID/GID numbers on different systems.



          By default rsync will try to match the ownership by username resp. groupname. In other words when the user vmail is the owner of a file at the source, rsync will make the user vmail also the owner at the destination (even when they have different UID/GID numbers).

          That is usually quite resilient and the most predictable for humans as we normally don't look at ownership in the form of UID/GID numbers.



          When no matching user vmail is present on the remote destination, then a fall-back scenario will happen. Rsync will then preserve the actual underlying UID/GID numbers and the UID number of the vmail user on the source will used to set the owner.



          That should preserver the correct ownership when you reverse the rsync direction and restore the backup.



          man rsync :



             -o, --owner
          This option causes rsync to set the owner of the destination file to be the same as the source file,
          but only if the receiving rsync is being run as the super-user (see also the --super and --fake-super
          options). Without this option, the owner of new and/or transferred files are set to the invoking user
          on the receiving side.

          The preservation of ownership will associate matching names by default, but may fall back to using the
          ID number in some circumstances (see also the --numeric-ids option for a full discussion).


          --numeric-ids
          With this option rsync will transfer numeric group and user IDs rather than using user and group names
          and mapping them at both ends.

          By default rsync will use the username and groupname to determine what ownership to give files. The
          special uid 0 and the special group 0 are never mapped via user/group names even if the --numeric-ids
          option is not specified.

          If a user or group has no name on the source system or it has no match on the destination system, then
          the numeric ID from the source system is used instead. See also the comments on the "use chroot" set‐
          ting in the rsyncd.conf manpage for information on how the chroot setting affects rsync’s ability to
          look up the names of the users and groups and what you can do about it.






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 11 hours ago

























          answered 11 hours ago









          HBruijnHBruijn

          56.9k1190150




          56.9k1190150













          • Thanks for the detailed answer. So, you're saying that I should connect (login) to the destination machine (backup server) as root and not as a normal user?

            – W.M.
            10 hours ago






          • 2





            As a normal user you can't create files that don't belong to you, so you need to either log in as root on the destination, or you have to be root locally and run rsync in the opposite direction and pull the files in.

            – HBruijn
            10 hours ago



















          • Thanks for the detailed answer. So, you're saying that I should connect (login) to the destination machine (backup server) as root and not as a normal user?

            – W.M.
            10 hours ago






          • 2





            As a normal user you can't create files that don't belong to you, so you need to either log in as root on the destination, or you have to be root locally and run rsync in the opposite direction and pull the files in.

            – HBruijn
            10 hours ago

















          Thanks for the detailed answer. So, you're saying that I should connect (login) to the destination machine (backup server) as root and not as a normal user?

          – W.M.
          10 hours ago





          Thanks for the detailed answer. So, you're saying that I should connect (login) to the destination machine (backup server) as root and not as a normal user?

          – W.M.
          10 hours ago




          2




          2





          As a normal user you can't create files that don't belong to you, so you need to either log in as root on the destination, or you have to be root locally and run rsync in the opposite direction and pull the files in.

          – HBruijn
          10 hours ago





          As a normal user you can't create files that don't belong to you, so you need to either log in as root on the destination, or you have to be root locally and run rsync in the opposite direction and pull the files in.

          – HBruijn
          10 hours ago


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Server Fault!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f964229%2fpreserving-file-and-folder-permissions-with-rsync%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Couldn't open a raw socket. Error: Permission denied (13) (nmap)Is it possible to run networking commands...

          VNC viewer RFB protocol error: bad desktop size 0x0I Cannot Type the Key 'd' (lowercase) in VNC Viewer...

          Why not use the yoke to control yaw, as well as pitch and roll? Announcing the arrival of...