• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Userhomes auf Server automatisch erstellbar?

rolle

Guru
Liebe Leute!

Ich habe hier einen Sambaserver als Fileserver für die homes und die Profile (bzw. die umgeleiteten Ordner) in einem AD. Es sollen Windows7 und Linuxclients darauf zugreifen. Also nutze ich hierfür die spezielle Freigabe [homes] und leite dahin die Linuxhomes und die Windowsordner um.
Gibt es eine Möglichkeit, den Sambaserver so zu konfigurieren, daß nicht vorhandene home-Verzeichnisse automatisch erstellt und mit dem Inhalt von /etc/skel befüllt werden, sobald jemand das Verzeichnis zu mounten versucht? (Beispiel: Nutzer doof meldet sich an einem Client unter egal openSuSE an. Der Sambaserver hat für ihn kein home. Per pam_mount versucht er nun //server/doof zu mounten. Das ist nicht vorhanden. Und wird automatisch auf dem Server mit den richtigen Berechtigungen erstellt und dann gemountet.)
 
OP
R

rolle

Guru
Das habe ich ja schon drin. Aber das macht mir nur lokal auf dem Server ein home, nicht per Netzwerk. Oder kann man das irgendwie in die smb.conf mit einbauen?
 

spoensche

Moderator
Teammitglied
rolle schrieb:
Das habe ich ja schon drin. Aber das macht mir nur lokal auf dem Server ein home, nicht per Netzwerk. Oder kann man das irgendwie in die smb.conf mit einbauen?

Wenn du dich mit einem User über Samba (z.B. Anmeldeaufforderung bei Freigaben) oder per Winbind anmeldest läuft die Anmeldung über PAM und das Home- Verzeicnis des Users wird angelegt, sofern er noch nciht existiert.

Die Home-Verzeichnisse kannst du per Samba im Abschnitt [home] freigeben.
 
OP
R

rolle

Guru
Hm, dann mache ich was grundlegendes falsch....

Also, das passiert, wenn ich ein nicht existentes home mounten möchte:
cipcbipc250:~ # mount -t cifs //SERVER/NAME /mnt -o user=DOMAIN\\NAME,password=GEHEIM
Retrying with upper case share name
mount error(6): No such device or address
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

/etc/pam.d/common-session vom Sambaserver
Code:
#%PAM-1.0
#
# This file is autogenerated by pam-config. All changes
# will be overwritten.
#
# Session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive
#
session  optional       pam_mkhomedir.so        umask=0077 
session required        pam_limits.so
session required        pam_unix2.so
session optional        pam_apparmor.so
session required        pam_winbind.so
session optional        pam_umask.so
session optional        pam_gnome_keyring.so    auto_start only_if=gdm,lxdm

/etc/samba/smb.conf des Servers (noch nicht sicher, kommt erst noch, wenn alles klappt)
Code:
# smb.conf is the main Samba configuration file. You find a full commented
# version at /usr/share/doc/packages/samba/examples/smb.conf.SUSE if the
# samba-doc package is installed.
# Date: 2011-03-01
[global]
        workgroup = DOMAIN
        netbios name = cipcbidaten
        security = ADS
        realm = DOMAIN.DE

        idmap gid = 9000-9999
        idmap uid = 9000-9999

        template homedir = /home/%D/%U
        template shell = /bin/bash
        winbind refresh tickets = yes

        idmap backend = tdb
        winbind nss info = rfc2307

        idmap config DOMAIN : backend     = rid
        idmap config DOMAIN : range       = 11000 - 499999
        idmap config DOMAIN : cache time = 1


        winbind enum users = yes
        winbind enum groups = yes
        winbind use default domain = yes
        usershare allow guests = No
        unix extensions = yes
        winbind separator = +
        log level = 3
        follow symlinks = yes
        obey pam restrictions = yes


[heimat]
        inherit acls = Yes
        hide unreadable = yes
        path = /homes/%D
        create mask = 0600
        directory mask = 0700
        public = yes
        writable = yes
        profile acls = yes
        store dos attributes = Yes



[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No
[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @ntadmin root
        force group = ntadmin
        create mask = 0664
        directory mask = 0775
[homes]
        read only = no
        path = /homes/%D/%U
        public = yes


## Share disabled by YaST
# [netlogon]

Wie gesagt, mache ich direkt auf dem Server ein su - bzw. melde mich per ssh an, wird das home erstellt.
 

stka

Guru
Pam kann nur ein lokales Verzeichnis erstellen. Wenn du aber das Verzeichnis /home vom Server moutest sollte das erstellen funktioneren. Dir fehlt der Parameter "obey pam restrictions = yes" im Global.
 
OP
R

rolle

Guru
Hm, ich scheine jetzt eine ganz elegante Lösung gefunden zu haben.

Ich wußte ja, daß Windows Profile selbst anlegt. Diese habe ich nun inklusive Ordnerumleitung per Gruppenrichtlinie auf dem AD-Server auf den Fileserver umgebogen. So war ja auch der Plan. Da damit die Menschen einmal auf dem Fileserver angemeldet waren per Windowslogin und Ordnerumleitung und so wird per pam_mkhomedir auch das home automatisch angelegt. Wieder was gelernt. :???: Da ich eh Dualbootmaschinen habe, muß ich nur noch meinen Nutzern sagen, daß Sie sich das erste Mal an Windows anmelden müssen und gut ist.

Ich setze den Fred mal auf gelöst, sollte die Lösung doch nicht klappen melde ich mich einfach wieder.

Jedenfalls vielen Dank an die Helfenden.
 
Oben