ADSM-L

Re: restore file permissions

2006-01-27 09:18:13
Subject: Re: restore file permissions
From: Jurjen Oskam <jurjen AT STUPENDOUS DOT ORG>
To: ADSM-L AT VM.MARIST DOT EDU
Date: Fri, 27 Jan 2006 15:17:51 +0100
On Fri, Jan 27, 2006 at 07:20:17AM -0500, Richard Sims wrote:

> You seem to be under the false impression that permissions are stored
> in TSM independent of the object data. Not.

No, that is not the impression I'm under.

I'm under the impression that this:

> This is why when file
> system object attributes are changed, the object itself gets backed
> up again.

... is not the case.

> (See backup candidate criteria details in the client
> manual.)

The manual specifically states:

"If /only/ the following items change, they are updated without causing the
entire file to be backed up to the server:

    * File owner
    * File permissions
    * Last access time
    * Inode
    * Group ID"

> Object restoral gets the attributes of the object.

True, but you get the *updated* attributes. Which are the ones you *don't*
want, in case a backup happened after a runaway chmod.

I've included a transcript of a terminal session to demonstrate (edited for
legibility, un-edited version is at http://www.stupendous.org/tsm.txt).

I create a file "demo" with permissions rw-r--r--, and store it in TSM
using "dsmc i". Then, I change the permissions to rw-------, and again
perform "dsmc i".  Note that the file is *updated* in TSM, and still only
has 1 version in TSM (no inactive version). It is now impossible to restore
the file with the original permissions rw-r--r--, as you can see near the end
of the transcript.

$ ls -l demo
demo not found

$ dsmc query backup -inact demo
ANS1092W No files matching search criteria were found

$ echo foo > demo
$ ls -l demo
-rw-r--r--   1 joskam   staff             4 Jan 27 14:44 demo

$ dsmc i demo
Incremental backup of volume 'demo'
Normal File-->                 4 /home/joskam/demo [Sent]
Successful incremental backup of '/home/joskam/demo'
Total number of objects inspected:      199
Total number of objects backed up:        1
Total number of objects updated:          0

$ dsmc query backup -inact demo
             Size      Backup Date        Mgmt Class A/I File
             ----      -----------        ---------- --- ----
             4  B  01/27/06   14:44:43    MC_TRIAS_D  A  /home/joskam/demo

$ chmod go-r demo
$ ls -l demo
-rw-------   1 joskam   staff             4 Jan 27 14:44 demo

$ dsmc i demo
Incremental backup of volume 'demo'
Updating-->                    4 /home/joskam/demo [Sent]
Successful incremental backup of '/home/joskam/demo'
Total number of objects inspected:      199
Total number of objects backed up:        0
Total number of objects updated:          1

$ dsmc query backup -inact demo
             Size      Backup Date        Mgmt Class A/I File
             ----      -----------        ---------- --- ----
             4  B  01/27/06   14:44:43    MC_TRIAS_D  A  /home/joskam/demo

$ echo bar >>demo
$ chmod go+x demo
$ ls -l demo
-rw---x--x   1 joskam   staff             8 Jan 27 14:47 demo

$ dsmc i demo
Incremental backup of volume 'demo'
Normal File-->                 8 /home/joskam/demo [Sent]
Successful incremental backup of '/home/joskam/demo'
Total number of objects inspected:      199
Total number of objects backed up:        1
Total number of objects updated:          0

$ dsmc query backup -inact demo
             Size      Backup Date        Mgmt Class A/I File
             ----      -----------        ---------- --- ----
             8  B  01/27/06   14:47:24    MC_TRIAS_D  A  /home/joskam/demo
             4  B  01/27/06   14:44:43    MC_TRIAS_D  I  /home/joskam/demo

$ rm demo
$ dsmc restore -inact -pitdate=01/27/2006 -pittime=14:45 demo
Restoring               4 /home/joskam/demo [Done]
Total number of objects restored:         1
Total number of objects failed:           0

$ ls -l demo
-rw-------   1 joskam   staff             4 Jan 27 14:44 demo

$ rm demo
$ dsmc restore demo
Restoring               8 /home/joskam/demo [Done]
Total number of objects restored:         1
Total number of objects failed:           0

$ ls -l demo
-rw---x--x   1 joskam   staff             8 Jan 27 14:47 demo

> Furthermore, in Unix, such attributes are in the inode, not in the
> directory. Take a look at your operating system's dirent.h header
> file to realize how paltry Unix directory information is.

Yes, I know this. (This can also be seen by performing "cat" on a directory.)

--
Jurjen Oskam

<Prev in Thread] Current Thread [Next in Thread>