PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GID geändert - ACL's anpassen



rkauskh
24.03.15, 12:56
Hallo

Wenn ich im LDAP die GID der Gruppen ändere, gibt es dann einen praktikablen Weg die ACL's auf meinem Samba Fileserver anzugleichen? Der Datenbestand sind ca. 1TB. Manuell jede Datei und jedes Verzeichnis anzufassen scheidet da aus.
Am einfachsten wäre eine Ersetzungstabelle alte GID - neue GID und ein Script das über alle Dateien/Verzeichnisse in den ACL's die alte GID sucht und mit der neuen ersetzt.

DrunkenFreak
25.03.15, 08:21
Mit find nach GID suchen und dann über exec chown ändern.

rkauskh
25.03.15, 11:40
Hallo

find sucht aber nur in den drei Standard-ACL's. Owner und Group sind bei allen Dateien/Verzeichnissen root. Mein Problem sind aber die erweiterten ACL's über die die Zugriffsrechte der Mitarbeiter geregelt werden.

drcux
25.03.15, 11:52
Wird dir bei ACLs nicht helfen, die kennt find AFAIK nicht.

Mit getfacl und setafcl kannst du das relativ leicht durchführen.

1.

Mit getfacl eine Datei mit allen ACLs erstellen:



getfacl -sR /dein/ordner > acl.txt


2.

Mit einem Tool deiner Wahl in der Datei acl.txt die alten GIDs mit den neuen ersetzen. Geht zur Not auch mit nem handesüblichen Editor mit "Suche - Ersetze".

3.

Die ACLs mit setafcl zurückschreiben:



setfacl --restore=acl.txt


EDIT: War restore

rkauskh
25.03.15, 22:40
Hallo

Ja, das war auch meine Idee. Das Erstellen der Datei dauert ca. 6 Stunden. Suchen und Ersetzen hab ich dann nicht mehr versucht, da das vermutlich ähnlich lange dauern wird und restore noch länger. Hatte befürchtet das es nicht anders geht, aber fragen kostet ja hier zum Glück nix. :)

Also mindestens 2 Tage downtime, da ich nicht noch zwischendurch geänderte/neue Dateien haben möchte.
Weißt du zufällig, ob restore zwischenzeitlich gelöschte Dateien überspringt oder bricht setfacl dann ab?

drcux
26.03.15, 06:11
Keine Ahnung, probiere es doch in einem Testordner aus.