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

Re: Ownership en permissies in een file?



Paul van der Vlis wrote:
David Hartveld schreef:
Paul van der Vlis wrote:
David Hartveld schreef:
Ik heb recent met ACLs zitten spelen en heb daarbij ook een dump/restore
functie gezien: "Finally, the getfattr and getfacl utilities can dump
ACLs and EAs to text files, which the setfattr and setfacl utilities are
able to restore. This works reasonably well for restoring complete
backups, but it is impractical for restoring individual files." [1]
Overigens worden daar ook nog enkele andere suggesties gedaan.

Gr. David

[1] http://www.suse.de/~agruen/acl/linux-acls/online/ in paragraaf
'Backup and restore'.
Het lijkt er toch echt op dat hij alleen de extended ownership en
permissies dumpt of restored, en niet de gewone.

Uit de man-page:
getfattr - get extended attributes of filesystem objects

Hij geeft ook geen output als ik doe:
getfattr filename
Gebruik getfacl/setfacl uit package acl. Wel moet bij de betreffende
mount de optie acl op worden gegeven (om setfacl te kunnen gebruiken).
Ophalen van permissions van de root (/) directory:

david@arco:~$ getfacl /
getfacl: Removing leading '/' from absolute path names
# file: .
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

Je hebt gelijk, ik gebruikte het verkeerde commando. Bedankt.

Kun je hier wat mee?

Zo in eerste instantie lijkt het te zijn waar ik om vroeg, ik ga er nog
wat mee experimenteren.

Hallo Paul,

In plaats van de boel te her-mounten met extended attributes en ACL's mount-opties alleen om setfacl en getfacl te kunnen gebruiken, kun je hetzelfde effect krijgen met een gewoon script dat 'gewone' (=niet-ACL) owner.group en permissies opslaat in files.

Onderstaand script schrijft in elke subdirectory een script met de naam ".restore-owner-perm.sh". Dit zijn scripts die als ze gedraaid worden de owner.group en permissies terugzet van toen de scripts gemaakt zijn van alle entries in die directory.

(Let op: ik heb het getest, maar niet grondig)

   #!/bin/bash

   DUMPFILE=.restore-owner-perm.sh

   find -depth -type d | while read DIR; do
       cd "$DIR"
       echo "#!/bin/sh" >"$DUMPFILE"
       ls -A | while read ITEM; do
stat -c "chown %u.%g \"${ITEM}\"; chmod 0%a \"${ITEM}\"" "$ITEM" >>"$DUMPFILE"
       done
       cd - >/dev/null
   done
   exit 0

Stel je gaat met "cd" naar /home/paul, draait dit script en maakt een kopie of backup, de gemaakte scripts gaan dan mee in de backup.

Na het terugzetten van een backup als de owner,group en permissies verdwenen zijn, draai je het volgende script dat alle ".restore-owner-perm.sh" scripts in alle subdirectories aanroept (en dan eventueel verwijdert), waarmee de owner,group en permissies worden teruggezet.

   #!/bin/bash
DUMPFILE=.restore-owner-perm.sh find -depth -type d | while read DIR; do
       cd "$DIR"
       [ -f "$DUMPFILE" ] && source "$DUMPFILE"
       rm "$DUMPFILE"  # optioneel weghalen dumpfile
       cd - >/dev/null
   done
   exit 0

Vergelijkbaar met de getfacl/setfacl methode, maar dan zonder het ACL gedoe.

Groeten, Heiko


Reply to: