Author Topic: Zentyal 3.2 - Samba: Home-Verzeichnisse für User eine Verzeichnisebene tiefer  (Read 3227 times)

zentypenguin

  • Zen Apprentice
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Hallo,

Ich bastele schon eine ganze Weile am Zentyal-Server, unter anderem, um ihn auch mit Linux-Clients sinnvoll einsetzen zu können. Bislang habe ich es geschafft, dass sich User, die auf dem Server eingerichtet sind, sich auf einem Linux-Client anmelden können und das mappen von Verzeichnissen klappt auch inzwischen ganz gut.

Als nächsten Schritt möchte ich eigentlich zwei Exports verwenden, eines, um die allgemeinen Shares zu mouten, und eines, um die User-Verzeichnisse zu mounten, so dass lokale systemrelevante User-Verzeichnisse nicht sichtbar sind. Und dann soll das mit Windows-Boxen ja auch noch weiter klappen.

Leider ist das Home-Verzeichnis im Samba aber festgelegt. Wie kann ich die Konfiguration so anpassen, dass die Home-Verzeichnisse der produktiven User unterhalb des Verzeichnisses /home/userdata/ angelegt werden, so dass ich das Verzeichnis "userdata" dann exportieren kann, statt "home"?

Ich vermute mal, dass es nicht damit getan ist, nur die Samba-Konfiguration anzupassen. Ich fürchte ja, dass man im LDAP auch noch Anpassungen durchführen müsste.

Gibt es eine Möglichkeit, die richtige Konfiguration in /etc/zentyal/hooks/ anzulegen und wie müsste das dann aussehen?

Ich stelle mir den Verzeichnisbaum etwa so vor:

/home/
/home/userdata/
/home/userdata/user1
/home/userdata/user2
/home/userdata/user3
/home/userdata/...
/home/samba/profiles
/home/samba/shares
/home/samba/shares/share1
/home/samba/shares/share2
/home/samba/shares/...

Und dann eben als exports /home/userdata/ und /home/samba/shares/

Würde mich freuen, wenn jemand mir Hinweise geben könnte, wie ich das umsetzen kann.

Mit herzlichen Grüßen,

Ralf

zentypenguin

  • Zen Apprentice
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Hallo,

ich bin schon ein Stückchen weiter gekommen.

Habe die Datei /etc/zentyal/samba.postsetconf mit fogendem Inhalt angelegt:
Code: [Select]
#!/bin/sh
sed -i 's/path = \/home\/\%S$/path = \/home\/userdata\/\%S/' /etc/samba/smb.conf
    exit 0
Damit erreiche ich, dass das Home-Verzeichnis in der smb.conf nach meinen Wünschen angepasst ist.

Allerdings werden neue User immer noch im /home angelegt.

Also, wie ich befürchtet habe, es muss mehr getan werden.

Aber ich habe bislang keine weitere Konfiguration gefunden, in der das Home-Verzeichnis irgendwie definiert wird.

Auch die Datei /etc/adduser.conf, wo das Home-Verzeichnis definiert wird, scheint für die Userverwaltung nicht verwendet zu werden.

Gibt es überhaupt eine Möglichkeit?

Am schönsten wäre natürlich, wenn man beim Anlegen eines Users einen alternativen Pfad zum Home angeben könnte, der dann auch im Ldap gespeichert würde und in allen Bereichen berücksichtigt wird.
Ob das mal gibt?

Vielen Dank für Eure Hinweise,

Ralf

mwolf2013

  • Zen Apprentice
  • *
  • Posts: 20
  • Karma: +0/-0
    • View Profile
Hi,

ich hab hier mal n paar howtos zusammengestellt..basiert zwear auf 3.0.2 aber ist schonmal ein ansatz :)

- H: Laufwerksmapping entfernen

nano /usr/share/perl5/EBox/SambaLdapUser.pm
 
oder
 
nano /usr/share/perl5/EBox/Samba.pm
 
Suche nach "HomeDrive"
 
Zeile remmen
 
        # Mount user home on network drive
        my $drivePath = "\\\\$netbiosName.$realmName";
        EBox::info("Setting home network drive for user '$samAccountName'");
-->>>   #$sambaUser->setHomeDrive($self->{samba}->drive(), $drivePath, 1);
        $sambaUser->save();
 
 
Danach Userobjekt ändern -> fertig


- Wenn Samba langsam Audit deaktivieren

nano /usr/share/zentyal/stubs/samba/smb.conf.mas
 
Suche nach "full_audit"
 
aus my $objects entfernen (2x)
 
-->>>   % my $objects = 'acl_xattr';
 
 
Danach Dateifreigabe neustarten (Weboberfläche) -> fertig


- Profiles Share ändern

nano /usr/share/zentyal/stubs/samba/smb.conf.mas
 
Suche nach "profiles"
 
Pfad ändern
 
% if ($mode eq 'dc') {
%   if ($roamingProfiles) {
[profiles]
-->>>    path = /home/samba/prof
    browseable = no
    read only = no
%   }
 
 
Danach Dateifreigabe neustarten (Weboberfläche) -> fertig

viel Spaß

zentypenguin

  • Zen Apprentice
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Hallo mwolf2013,

vielen Dank für Deine Antwort. Mir stellt sich hier aber die Frage, wie nachhaltig diese Änderungen sind, wenn ich sie in /usr/share/perl5/EBox/.. durchführe. Wird das nicht überschrieben, sobald ein Update rein kommt?

Gibt es da keine Möglichkeit, für die Module, die für den Pfad verantwortlich sind, Hooks zu verwenden? Die wären nach einem Update ja immer noch vorhanden, wenn ich das richtig verstanden habe.

Mit herzlichen Grüßen,

Ralf