"" wrote at about 14:42:10 -0400 on Friday, May 22, 2020:
 > Craig,
 > Using rsync (rather than tar) to restore, I think I confirmed several
 > bugs with the handling of sockets and SELinux attributes
 > 
 > Hopefully, I have provided enough info to debug...
 > 
 > In summary:
 > 0.  All my ACLs are dumped & restored properly (with rsync) --> GOOD
 > 1. Sockets are restored as regular files not special files --> BUG?
 > 2. SELinux attributes are not dumped for directories and links --> BUG?
 > 3. SELinux attributes for regular files are generally handled OK, but
 >         sometimes dump generates an SELinux entry where none exists
 >         in the source. This happens for a few files where the
 >         SELinux entry previously existed in earlier backups on the
 >         host... I don't understand this... and need to investigate
 >         it further 

Regarding #3, it goes away when I erase all previous backups... so
there may be a merging-inheritance problem here as I alluded to
before...

However, #1 & #2 seem to be clear issues with implementation of rsync-bpc...
> 
 > Here are some examples showing the behavior
 > 1. Sockets are dumped as 'sockets' but restored as 'regular' files
 >    srw-rw-rw- 1 postfix postfix ? 0 May 21 03:39 
 > /mnt/backuppc/all/myhost/256/root/var/spool/postfix/private/scan
 >    -rw-rw-rw- 1 postfix postfix ? 0 May 21 03:39 
 > /tmp/tmprestore/root/var/spool/postfix/private/scan
 >    srw-rw-rw- 1 postfix postfix ? 0 May 21 03:39 
 > /var/spool/postfix/private/scan
 > 
 >    Note that the first listing shows a backuppc-fuse mounting of the dump,
 >    confirming that the dump is stored properly.
 > 
 >    Note that rsync itself has no problem copying sockets and special
 >    files.
 >    Also, special files (--specials) should be included under the -D
 >    flag that I use for both rsync dump and restore commands (see below)
 > 
 > 2. SELinux for 'links' & 'directories' fail to Dump the SELinux entry but
 >    otherwise dump & restore properly
 >    (see the /mnt/backpupc/all/myhost line which shows the backuppc-fuse 
 > version)
 > 
 >    drwxrwxr-x  6 root root ?                           1024 Jan 28  2019 
 > /mnt/backuppc/all/myhost/256/root/usr/local/lib/mac/
 >    drwxrwxr-x  1 root root ?                           428 Jan 28  2019 
 > /tmp/tmprestore/root/usr/local/lib/mac/
 >    drwxrwxr-x. 1 root root system_u:object_r:lib_t:s0  428 Jan 28  2019 
 > /usr/local/lib/mac/
 > 
 >    lrwxrwxrwx  1 root root ?                          17 Nov 20  2009 
 > /mnt/backuppc/all/myhost/256/root/usr/local/etc/motd -> motd.good
 >    lrwxrwxrwx  1 root root ?                          17 Nov 20  2009 
 > /tmp/tmprestore/root/usr/local/etc/motd -> motd.good
 >    lrwxrwxrwx. 1 root root system_u:object_r:etc_t:s0 17 Nov 20  2009 
 > /usr/local/etc/motd -> motd.good
 > 
 >    (note that it succeeds though for the corresponding link target (see 
 > below)
 > 
 > 3. SELinux for 'regular files' generally dumps and restore properly
 >      For a handful of files, dump creates an SELinux entry even though
 >      the source didn't have such entry. Perhaps it was wrongly
 >      inherited/merged from an earlier backup???? I need to investigate
 >      this further... as it is quite strange
 > 
 >      Dump & Restore succeeds here (most common)
 >      -rw-r--r--. 1 root root system_u:object_r:etc_t:s0 11 Jan 17 2008 
 > /mnt/backuppc/all/myhost/257/root/usr/local/etc/motd.good
 >      -rw-r--r--. 1 root root system_u:object_r:etc_t:s0 11 Jan 17 2008 
 > root//usr/local/etc/motd.good
 >      -rw-r--r--. 1 root root system_u:object_r:etc_t:s0 11 Jan 17 2008 
 > /usr/local/etc/motd.good
 > 
 >      Dump seems to create a new  SELinux entry where none existed
 >      previously in the source; Restore then restores it...
 >      -rw-rw-r--. 1 root root system_u:object_r:lib_t:s0 5889 Aug 12 2002 
 > /mnt/backuppc/all/myhost/257/root/usr/local/lib/emacs/site-lisp/gin-mode.el
 >      -rw-rw-r--. 1 root root system_u:object_r:lib_t:s0 5889 Aug 12 2002 
 > root/usr/local/lib/emacs/site-lisp/gin-mode.el
 >      -rw-rw-r--  1 root root ?                          5889 Aug 12 2002 
 > /usr/local/lib/emacs/site-lisp/gin-mode.el
 >      
 >    
 > ---------
 > Note the command I use to restore is:
 > /usr/bin/rsync_bpc --bpc-top-dir /var/lib/backuppc --bpc-host-name \
 > myhost --bpc-share-name root --bpc-bkup-num 257 --bpc-bkup-comp 3 \
 > --bpc-bkup-merge 257/3/4 --bpc-attrib-new --bpc-log-level 1 -e \
 > /usr/bin/sudo\ -h --rsync-path=/usr/bin/rsync --recursive --super \
 > --protect-args --numeric-ids --perms --owner --group -D --times \
 > --links --hard-links --delete --partial --log-format=log:\ %o\ %i\ %B\ \
 > %8U,%8G\ %9l\ %f%L --stats --acls --xattrs / myhost:/tmp/tmprestore/root
 > 
 > And from the logs, the corresponding dump command was:
 > /usr/bin/rsync_bpc --bpc-top-dir /var/lib/backuppc --bpc-host-name \
 > myhost --bpc-share-name root --bpc-bkup-num 257 --bpc-bkup-comp 3 \
 > --bpc-bkup-prevnum -1 --bpc-bkup-prevcomp -1 --bpc-bkup-inode0 3325462 
 > --bpc-attrib-new \
 > --bpc-log-level 1 -e /usr/bin/sudo\ -h --rsync-path=/usr/bin/rsync \
 > --super --recursive --protect-args --numeric-ids --perms --owner \
 > --group -D --times --links --hard-links --delete --delete-excluded \
 > --one-file-system --partial --log-format=log:\ %o\ %i\ %B\ %8U,%8G\ %9l\ 
 > %f%L \
 > --stats --acls --xattrs --timeout=72000 myhost:/ /
 > 
 > Craig Barratt via BackupPC-users wrote at about 21:50:40 -0700 on Thursday, 
 > May 21, 2020:
 >  > Jeff,
 >  > 
 >  > Unfortunately BackupPC_tarCreate doesn't support acls.  Over the years
 >  > different flavors of tar supported different archive formats for certain
 >  > extensions (eg, long file names etc).  The POSIX standard for PAX headers
 >  > unified some of the those disparate formats, but didn't define acl or 
 > xattr
 >  > support.
 >  > 
 >  > Over the last few years it does look like GNU tar provides support for
 >  > acls, but using PAX headers that are not standard.  Looking at the tar
 >  > source, it uses headers like SCHILY.acl.access, SCHILY.xattr etc.
 >  > Supporting those headers appears to require the acls and xattrs to be
 >  > converted to descriptive strings.  Currently BackupPC rsync treats acls 
 > and
 >  > xattr as binary blobs of data that it doesn't need to interpret.  So
 >  > unfortunately it would be quit difficult to add acl and xattr support to
 >  > BackupPC_tarCreate.
 >  > 
 >  > Craig
 >  > 
 >  > On Tue, May 19, 2020 at 11:49 PM <backu...@kosowsky.org> wrote:
 >  > 
 >  > >
 >  > > Now that I have btrfs snapshots set up, I decided to test a full
 >  > > backup and restore by comparing the snapshot with the backup-restore
 >  > > via rsync, using the following command:
 >  > >     sudo -u backuppc /usr/share/backuppc/bin/BackupPC_tarCreate -h 
 > myhost
 >  > > -n -1 -s myshare . | sudo tar --acls --selinux --xattrs -xvf -
 >  > >
 >  > > Interestingly, I found that everything worked *except* that it failed
 >  > > to copy any sockets or any extended attributes.
 >  > >
 >  > > 1. Sockets were not copied at all - but that is seemingly just a tar
 >  > >    limitation since tar can't copy 'special' files.
 >  > >    Indeed, backuppc-fuse shows that the files are actually backed up by
 >  > > bakcuppc
 >  > >
 >  > > 2. Extended attributes (ACLs and SELinux context) were *never* restored
 >  > >
 >  > >    This seems to be a problem with 'BackupPC_tarCreate" since:
 >  > >    a] Using tar alone, I can copy the files with all their extended
 >  > > attributes
 >  > >         cd <myshare>; tar --acls --selinux --xattrs -cf - mac ) | tar 
 > xf -
 >  > >    b] Similarly, raw rsync copies all the files faithfully
 >  > >        rsync -navcxXAOH --delete <myshare> .
 >  > >    b] Backuppc-fuse shows the extended attributes
 >  > >       (though that being said backuppc-fuse adds SELinux context 
 > attributes
 >  > >       to files that don't have them... perhaps there is something wrong
 >  > >       with the inheritance??
 >  > >
 >  > > Note: I tried adding ' --xargs --acls --selinux --xattrs'
 >  > > to $Conf{TarClientRestoreCmd} but that didn't help.
 >  > >
 >  > > So, 2 questions:
 >  > > 1. Why doesn't BackupPC_tarCreate restore the extended attributes?
 >  > > 2. Why does backuppc-fuse show extended attributes for files that
 >  > >    don't have them originally?
 >  > >
 >  > > ----------
 >  > > Note: I am running ubuntu 18.04 with rsync 3.1.2 and backuppc 4.3.2
 >  > >
 >  > >
 >  > > _______________________________________________
 >  > > BackupPC-users mailing list
 >  > > BackupPC-users@lists.sourceforge.net
 >  > > List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
 >  > > Wiki:    http://backuppc.wiki.sourceforge.net
 >  > > Project: http://backuppc.sourceforge.net/
 >  > >
 >  > _______________________________________________
 >  > BackupPC-users mailing list
 >  > BackupPC-users@lists.sourceforge.net
 >  > List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
 >  > Wiki:    http://backuppc.wiki.sourceforge.net
 >  > Project: http://backuppc.sourceforge.net/
 > 
 > 
 > _______________________________________________
 > BackupPC-users mailing list
 > BackupPC-users@lists.sourceforge.net
 > List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
 > Wiki:    http://backuppc.wiki.sourceforge.net
 > Project: http://backuppc.sourceforge.net/


_______________________________________________
BackupPC-users mailing list
BackupPC-users@lists.sourceforge.net
List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
Wiki:    http://backuppc.wiki.sourceforge.net
Project: http://backuppc.sourceforge.net/

Reply via email to