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: