rdiff-backup-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [rdiff-backup-users] Winsdows 7/Vista ACLs not restored correctly?


From: Dominic Raferd
Subject: Re: [rdiff-backup-users] Winsdows 7/Vista ACLs not restored correctly?
Date: Mon, 01 Oct 2012 12:59:39 +0100
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20120907 Thunderbird/15.0.1

Leland:

Plaudits for your detailed research. Here is a developer thread from the time when the Windows ACL code was being developed for rdiff-backup: http://www.backupcentral.com/phpBB2/two-way-mirrors-of-external-mailing-lists-3/rdiff-backup-23/patch-backing-up-windows-acls-90543/ (June 2008).

Sadly rdiff-backup is no long under development, the last maintainer seemed to lose interest after March 2009 and no one has picked up the baton. I still find it very powerful and reliable for backing up data from Windows machines to a Linux backup server - I'm not bothered about permissions, though. (Note that the rdiff-backup option --no-acls works both for Posix and Windows systems.)

Dominic

*TimeDicer* <http://www.timedicer.co.uk>: Free File Recovery from Whenever


On 25/09/2012 03:31, Leland Best wrote:
Dominic,

Sorry for the delay in replying.  Anyway, ...

On Wed, 2012-09-19 at 17:53 +0100, Dominic Raferd wrote:
Sorry Leland, I have always explicitly excluded acls from my Windows
backups.
Hmmm, well there's something I haven't tried.  However, as I understand
it (which may well be wrong of course) the rdiff-backup options about
ACLs (e.g. --no-acls) all apply to POSIX ACLs.  Windows ACLs are not
POSIX ACLs and, in fact, are handled by a different Python module.  I
also believe that under Windows the ACLs are basically the _only_
security mechanism so to disable them would loose all permissions info.

  But in any case for ACLs rdiff-backup requires the pylibacl and
pyxattr modules. My standard rdiff-backup installation (under Ubuntu
12.04) does not have pylibacl or pyxattr. You can check whether you
have them in your Debian with:

pydoc modules|egrep -o "(pylibacl|pyxattr)"
'pydoc' spits out a bunch of errors for me but:

----
address@hidden:~> dpkg -s python-pylibacl | grep Status
Status: install ok installed

address@hidden:~> dpkg -s python-pyxattr | grep Status
Status: install ok installed
----

This extract from a linux-linux backup is suggestive:

----
/usr/lib/pymodules/python2.6/rdiff_backup/SetConnections.py:148:
DeprecationWarn
ing: os.popen2 is deprecated.  Use the subprocess module.
   stdin, stdout = os.popen2(remote_cmd)
Unable to import win32security module. Windows ACLs
not supported by filesystem at /buckbeak/root/home
escape_dos_devices not required by filesystem at /buckbeak/root/home
Using rdiff-backup version 1.2.8
Executing ssh -C address@hidden rdiff-backup --server
-----------------------------------------------------------------
Detected abilities for source (read only) file system:
   Access control lists                         On
   Extended attributes                          On
   Windows access control lists                 Off
   Case sensitivity                             On
   Escape DOS devices                           Off
   Escape trailing spaces                       Off
   Mac OS X style resource forks                Off
   Mac OS X Finder information                  Off
-----------------------------------------------------------------
Unable to import win32security module. Windows ACLs
not supported by filesystem at home/rdiff-backup-data/rdiff-backup.tmp.0
escape_dos_devices not required by filesystem at
home/rdiff-backup-data/rdiff-backup.tmp.0
-----------------------------------------------------------------
Detected abilities for destination (read/write) file system:
   Ownership changing                           On
   Hard linking                                 On
   fsync() directories                          On
   Directory inc permissions                    On
   High-bit permissions                         On
   Symlink permissions                          Off
   Extended filenames                           On
   Windows reserved filenames                   Off
   Access control lists                         On
   Extended attributes                          On
   Windows access control lists                 Off
   Case sensitivity                             On
   Escape DOS devices                           Off
   Escape trailing spaces                       Off
   Mac OS X style resource forks                Off
   Mac OS X Finder information                  Off
-----------------------------------------------------------------
----

First, note that both source and destination show "Access control lists"
and "Extended attributes" as "On".  Presumably if pylibacl and/or
pyxattr were not installed they would be "Off".  Second, and more to the
point, are these lines:

Unable to import win32security module. Windows ACLs
not supported by filesystem at /buckbeak/root/home
[...]
   Windows access control lists                 Off

I believe _Windows_ ACLs are handled in module win32security.  Now the
log files from the windows native client doing a windows-linux backup
shows "Windows access control lists" as "On" on the source (windows)
filesystem but "Off" on the destination filesystem.  This is okay though
because rdiff-backup stores the windows ACL data in a file under
rdiff-backup-data on the destination.  The file name is of the form
win_access_control_lists.<timestamp>.snapshot.gz.

Examining this file (after reading up on windows ACLs on the web) looks
like the windows ACLs are stored correctly.  For example, previously I
posted that Windows showed the permissions for the "Leland" directory to
be

--------
SYSTEM: <not inherited>, Full Control, This folder, subfolders and files
Leland: <not inherited>, Full Control, This folder, subfolders and files
Administrators: <not inherited>, Full Control, This folder, subfolders
   and files
--------

Now the first few lines of win_access_control_lists...gz are:

--------
# file: .
O:SYG:SYD:P(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;FA;;;S-1-5-21-182347274-1911788080-2948552075-1007)
--------

This is admittedly cryptic but (as best I can tell) says for directory
"Leland" (the top-level source directory):

Owner: SYSTEM
Group: SYSTEM
Permissions:
   Allow SYSTEM: Full Access, Object Inheritance, Container Inheritance
   Allow Administrators: Full Access, Object Inheritance, Container
     Inheritance
   Allow Leland: Full Access, Object Inheritance, Container Inheritance

which looks about right.  So, whatever is going wrong must be on the
restore side.  While this narrows things down a bit, I'm no Python Guru
so I'm not sure where to go next.  Perhaps try to rebuild the
rdiff-backup win32 native client using more recent versions of the
win32security module?  Or something?  Any hints would be appreciated.
Is there an active developers list for rdiff-backup and should I perhaps
post there?

Could this be your problem?
Given the above plus the fact that a Windows-Windows local
backup-restore cycle fails it seems unlikely.  But thanks for your
suggestion.

[...rest of reply deleted...]

Cheers
Leland




reply via email to

[Prev in Thread] Current Thread [Next in Thread]