Samba: Wie Eigentümer des jeweiligen Homeverzeichnisses nachträglich autom. ändern?

arcdes

Active Member
Hallo,

ich habe hier einen Samba PDC laufen. Funktioniert soweit alles super. Für die Verwaltung der Nutzer läuft eine OpenLDAP-Datenbank, die wiederum mit dem Ldap Account Manager (LAM) verwaltet wird.

Ziel ist es, Nutzer, die bisher von einem Windows-Server mit ActiveDirectory bedient wurden auf den neuen Samba-Server umzuziehen. Die Nutzer konnte ich mittels einer CSV-Datei in die Ldap-Datenbank importieren und der LAM hat auch brav die Home-Verzeichnisse angelegt.
Das entsprechende Homeverzeichnis gehört dabei immer dem jeweiligen Nutzer, also z.B. /usr/home/musteruser gehört dem Nutzer musteruser.
Jetzt möchte ich die Benutzerprofile von einem Netzlaufwerk (Terastation) in die neuen Homeverzeichnisse kopieren, was bei einem Testlauf auch einwandfrei funktioniert hat. So weit so gut.

Nun habe ich folgendes Problem:
Die manuell in die jeweiligen Verzeichnisse kopierten Profile bzw. Dateien gehören nun dem Nutzer root. Jetzt könnte ich ja manuell mittels chown den Eigentümer ändern, so dass das Profil wieder dem Nutzer musteruser gehört. Wenn ich das nicht mache, kriege ich die Fehlermeldung "Profil kann nicht geladen werden", wenn sich der Nutzer anmeldet.

Das Problem ist, dass ich etwa 700 Nutzern jeweils mittels chown die Eigentumsrechte manuell zuweisen müsste, was eine wahnsinns Arbeit ist.

Daher suche ich eine Möglichkeit, das ganze automatisch zu erledigen, z.B. mittels einer Batch-Datei.

Kennt jemand zufällig eine Lösung bzw. eine solche Batch-Datei? Leider bin ich im Scripting nicht so fit, als dass ich die Batch-Datei selbst schreiben könnte.

Bin für jede Antwort/Hilfe sehr dankbar!

Grüße
arcdes
 
Wenn der Verzeichnisname immer exakt dem Benutzernamen entspricht:
Code:
cd /usr/home
for BLA in *
do
   test -d "$BLA" && chown -R "$BLA" "$BLA"
done
Wie immer ohne Garantie.
 
Und wenn UID != HOME, dann tut es sowas hier:

Code:
getent passwd|awk -F: '$3 > 1000 && $3 < 9999 {print $1}'|while read uid; do echo chown -R $uid ~$uid;done
Wenn die Ausgabe gut aussieht, dann pipe'st du das einfach wieder in sh(1).
 
Ganz einfach!
Nimm "mc" und kopier die Daten mit der Option "Attribute sichern / Preserve Atributes)" , die eigentlich immer angehakt ist.
 
Zurück
Oben