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

Samba active directory domain controller kann keine Shares anlegen

Phillinger

Member
Hallo,

ich habe Samba 4 als AD DC dieser Anleitung folgend aufgesetzt.

Mithilfe der RSAT habe ich dann auch problemlos Benutzer und Gruppen erstellen können. Die Anmeldung der Hosts in der Domäne klappte auch auf Anhieb, das Anmelden der angelegten Benutzer ebenso.

Nun möchte ich Shares / Freigaben einrichten und stehe - offen gesagt - wie der Ochse vorm Berg.

Zuerst hielt ich mich an diese Anleitung https://wiki.samba.org/index.php/User_home_drives, um die Home Drives einzurichten. Ich kann mich erfolgreich auf den AD DC connecten. Aber bei dem Schritt Navigate to „System Tools“ / „Shared Folders“ / „Shares“ and select the newly added share. poppt schon folgender Fehler auf:
cZDEms2.png

"Die Prozeduranzahl liegt außerhalb des erlaubten Bereiches(1745)"

Alles, was ich dazu fand, war der Hinweis, keine Umlaute in den Beschreibungen der Freigaben zu nutzen. Ist bei mir ja nicht der Fall, ich habe ja noch gar keine Freigaben! Egal, Fehler weg klicken, weiter versuchen. Aber sobald ich eine Freigabe in den Eigenschaften bearbeiten möchte, erscheint beim Übernehmen:
5shDH4t.png

Es ist mir also nicht möglich, Freigaben zu erstellen/verwalten.

"Okay", dachte ich, "vielleicht ein Problem mit den Dateirechten. Kennt das zugrunde liegende Linux-System überhaupt die Domänen-User? Ein Mapping-Problem?"

Ein
Code:
wbinfo -u
listet brav alle von mir erstellten Domänen-User auf. Aber ein
Code:
getent passwd
kennt wieder nur die lokalen User, trotz Eintrag in der /etc/nsswitch.conf:
Code:
passwd:         compat winbind
group:          compat winbind

Wie bekomme ich es denn hin, dass ein
Code:
getent passwd
auch die Domänen-User listet? Ist das überhaupt nötig? Ich kann mit chown auf der Bash bereits Dateien Domänen-Usern zuordnen. Warum klappt dann das getent nicht? Um ehrlich zu sein, blicke ich bei der VIELZAHL an Anleitungen auch nicht immer durch, ob das jetzt für einen domain member, ein ad dc oder nur einen dc ist.


Hier meine smb.conf:
Code:
# Global parameters
[global]
        workgroup = PDOM
        realm = PDOM.EXAMPLE.ORG
        netbios name = ALBERT
        server role = active directory domain controller
        dns forwarder = 192.168.200.1
        server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns, smb
        dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, spoolss, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver, winreg, srvsvc
        idmap_ldb:use rfc2307 = yes

    # additional options, manually added:

    # to prevent problems with certificates
    ldap server require strong auth = no

[netlogon]
        path        = /var/lib/samba/sysvol/pdom.example.org/scripts
        read only   = No

[sysvol]
        path        = /var/lib/samba/sysvol
        read only   = No


Ich könnte also echt Hilfe brauchen, wo ich als nächstes ansetzen muss. Meine Idee ist: In der smb.conf einfache Shares erstellen/zuweisen und die Rechtevergabe über die Computerverwaltung als domänen-Administrator von einer Windows-Kiste aus zu machen. Aber das scheitert ja schon an den o.g. Fehlermeldungen.

/ Rechtschreibfehler korrigiert.
 
OP
Phillinger

Phillinger

Member
Heute bin ich mal wieder dazu gekommen, mich damit auseinander zu setzen.


Im Samba Wiki gibt es diese Anleitung, wie man Shares einrichtet:
https://wiki.samba.org/index.php/Shares_with_Windows_ACLs

Wenn ich die abfrühstücke, komme ich bis zu diesem Kommando:
Code:
# getent group "Domain Admins"
domain admins:x:10001:

Bei mir kommt da aber:
Code:
# getent group "Domain Admins"
domain admins:x:3000004:

Und das, obwohl ich der Gruppe "Domain Admins" über die RSAT-Tools in dem Reiter eine GID vergeben habe:
vGMtTrT.png


Offensichtlich funktioniert also das Mapping der GID nicht korrekt.

Nach einiger weiterer Recherche im Wiki (speziell https://wiki.samba.org/index.php/Setting_up_RFC2307_in_AD ) habe ich meine smb.conf nun erweitert:
Code:
# Global parameters
[global]
        workgroup = PDOM
        realm = PDOM.EXAMPLE.ORG
        netbios name = ALBERT
        server role = active directory domain controller
        dns forwarder = 192.168.200.1
        server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns, smb
        dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, spoolss, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver, winreg, srvsvc
        idmap_ldb:use rfc2307 = yes


    # Important: The ranges of the default (*) idmap config
    # and the domain(s) must not overlap!

    # Default idmap config used for BUILTIN and local accounts/groups
    idmap config *:backend = tdb
    idmap config *:range = 2000-9999

    # idmap config for domain PDOM
    idmap config PDOM:backend = ad
    idmap config PDOM:schema_mode = rfc2307
    idmap config PDOM:range = 10000-99999

    # Use settings from AD for login shell and home directory
    winbind nss info = rfc2307


    # additional options, manually added:
#    log level = 3
    # to prevent problems with certificates
    ldap server require strong auth = no

[netlogon]
        path        = /var/lib/samba/sysvol/pdom.example.org/scripts
        read only   = No

[sysvol]
        path        = /var/lib/samba/sysvol
        read only   = No

Gemäß dieser Tests https://wiki.samba.org/index.php/Setting_up_RFC2307_in_AD#Check_if_NIS_Extensions_are_installed_in_your_Directory ist RFC2307 "enabled" und läuft.

Dennoch liefert ein getent nicht die UID oder GID des jew. Domain Users oder der jew. Domain Group.


Any ideas?
 
Hallo Phillinger.

Ich leider momentan unter genau dem selben Problem!
Alles nach Anleitung gemacht, aber getent passwd liefert nur die lokalen Nutzer.

Auch bekomme ich die selbe Fehlermeldung in Windows beim Versuch Shares anzulegen.

Meine smb.conf sieht genauso aus wie deine, bis auf paar kleinigkeiten.

Wenn ich nach Hause komm poste ich mal paar genauere Info's.
Aber schonmal schön das ich nicht der einzige mit dem Problem bin. :D

gruß maxe

Edit: Hast du libnss-winbind libpam-winbind installiert auf deinem System?
Und wie sieht es mit der Zeit-Synchronisation aus? NTP läuft korrekt?

Das sind grad so Sachen die mir einfallen was ich Zuhause checken sollte :D
 
OP
Phillinger

Phillinger

Member
Ein Leidensgenosse! :D Und ich dachte schon, ich wäre alleine mit meinem Problem.


Ich habe das hier ein bisschen ruhen gelassen, weil ich darauf gewartet habe, dass die 2. Auflage des Samba4-Buches rauskommt. Das habe ich jetzt mal angefangen, systematisch durchzuarbeiten.

Meine smb.conf sieht nun wieder etwas schlanker aus:
Code:
# Global parameters
[global]
        workgroup = PDOM
        realm = PDOM.EXAMPLE.ORG
        netbios name = ALBERT
        server role = active directory domain controller
        dns forwarder = 192.168.200.1
        server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns, smb
        dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, spoolss, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver, winreg, srvsvc
    idmap_ldb:use rfc2307 = yes

    # additional options, manually added:
    #
#    log level = 3
    # to prevent problems with certificates
    ldap server require strong auth = no

[netlogon]
        path        = /var/lib/samba/sysvol/pdom.example.org/scripts
        read only   = No

[sysvol]
        path        = /var/lib/samba/sysvol
        read only   = No
Aktuell sieht es so aus, dass zumindest einige UNIX-Attribute übernommen werden.

Code:
# getent group "Domain Admins"
domain admins:x:10001:

Die Login-Shell bei Usern wird aber konsequent ignoriert. Mein User sollte z.B. /bin/bash haben, bekommt aber vehement /bin/false eingetragen.


Laut o.g. Buch und auch dem Samba-Wiki soll man es vermeiden, auf dem Domain-Controller auch einen Fileserver laufen zu haben, um den ID-Fuckup (sorry) zu vermeiden. Das kann doch aber nicht der Weisheit letzter Schluss sein?

Ich schreibe die Tage noch etwas mehr, hänge hier nur gerade etwas drin, weil ich Urlaubsvertretung machen muss.


/
max_powers schrieb:
Edit: Hast du libnss-winbind libpam-winbind installiert auf deinem System?
Und wie sieht es mit der Zeit-Synchronisation aus? NTP läuft korrekt?
Ja, beide Pakete sind installiert. NTP sollte korrekt laufen, aber das checke ich sicherheitshalber auch nochmal.
 
OP
Phillinger

Phillinger

Member
So, ich habe sicherheitshalber nochmal den NTPd geprüft und musste tatsächlich noch nachbessern (mea culpa).

Hier die /etc/ntp.conf
Code:
server  127.127.1.0
fudge   127.127.1.0 stratum 10

server  0.pool.ntp.org  iburst prefer
server  1.pool.ntp.org  iburst prefer

driftfile   /var/lib/ntp/ntp.drift
logfile     /var/log/ntp

ntpsigndsocket /var/lib/samba/ntp_signd/

restrict default kod nomodify notrap nopeer mssntp
restrict 127.0.0.1
restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery

Wie im o.g. Buch auf S. 81 beschrieben, habe ich nun auch die passenden Rechte für das Verzeichnis /var/lib/samba/ntp_signd/ :
Code:
root@albert:~# ll -a /var/lib/samba/ntp_signd/
insgesamt 8
drwxr-x--- 2 root ntp  4096 Mai  3 15:18 .
drwxr-xr-x 8 root root 4096 Mai  3 15:18 ..
srwxrwxrwx 1 root root    0 Mai  3 15:18 socket


Nun kann man auf den Windows-Clients in der Domäne folgendes Kommandos erfolgreichen durchführen:
Code:
C:\Windows\system32>w32tm /query /source
albert.pdom.example.org

C:\Windows\system32>
Alle Domänen-Mitglieder werden also automatisch mit dem DC gesynct. Ein manueller resync klappt jetzt auch:
Code:
C:\Windows\system32>w32tm /resync
Befehl zum erneuten Synchronisieren wird an den lokalen Computer gesendet.
Der Befehl wurde erfolgreich ausgeführt.

C:\Windows\system32>

Meine Ergebnisse der einzelnen Befehle beginnen ggü. dem (übrigens sehr gut lesbaren/strukturiertem Buch) bei folgendem Test: Ein getent group <gruppenname> sollte bei mir eigentlich folgendes zurück liefern:
Code:
root@albert:~# getent group "domain users"
PDOM\domain users:x:10000:

Es kommt aber "nur":
Code:
root@albert:~# getent group "domain users"
domain users:x:10000:
Das vorangestellte PDOM fehlt also.

Laut Buch soll mit folgenden Einträgen in der smb.conf ein getent passwd oder ein getent group auch die Einträge des AD auflisten:
Code:
winbind enum users = yes
winbind enum groups = yes

Das bleibt bei mir leider nach wie vor völlig wirkungslos. Auch das o.g. Problem ("Die Prozeduranzahl liegt außerhalb des erlaubten Bereiches(1745)") besteht weiter und ich kann keine Shares auf dem ad dc anlegen. :(
 
Also meine Konfiguration ist jetzt deiner fast identisch.
Habe deine npd.conf übernommen, auch die smb.conf sieht fast so aus wie die, die du zuletzt gepostest hast.
Unterschiede hier sind jediglich der Eintrag
ldap server require strong auth = no
den hab ich nicht drin.

Auch habe ich nicht Samba 4.2, sondern 4.5. Selbstkompiliert direkt von github, da ich zuerst mit der Version 4.1.7 Probleme beim installieren hatte.

Intressanter weiße liefert mir getent nun auch die AD-Member & Gruppen, aber mit total falschen Einträgen:
Code:
#getent passwd
SAMBADC\administrator:*:0:100::/home/SAMBADC/administrator:/bin/false
SAMBADC\joelb:*:10001:100:Joel Bucher:/home/SAMBADC/joelb:/bin/false
SAMBADC\krbtgt:*:3000013:100::/home/SAMBADC/krbtgt:/bin/false
SAMBADC\guest:*:3000014:100::/home/SAMBADC/guest:/bin/false
Beim Nutzer joelb stimmt die UID, GID aber falsch.
Beim Admin stimmt beides nicht.
Und bei beiden ist das /bin/false natürlich auch nicht richtig :D

Das einzige was ich geändert hatte war die ntpd Konfiguration.
Hast du geprüft ob die winbind links bei dir Korrekt sitzen?
https://wiki.samba.org/index.php/Libnss_winbind_links

Werde es nochmal mit den Optionen aus dem Samba-Wiki Artikel "Idmap config ad" probieren, also diese hier:
Code:
   # Default idmap config used for BUILTIN and local accounts/groups
       idmap config *:backend = tdb
       idmap config *:range = 2000-9999

       # idmap config for domain SAMDOM
       idmap config SAMDOM:backend = ad
       idmap config SAMDOM:schema_mode = rfc2307
       idmap config SAMDOM:range = 10000-99999

       # Use settings from AD for login shell and home directory
       winbind nss info = rfc2307



Werde wieder berichten wie es lief!
 
OP
Phillinger

Phillinger

Member
max_powers schrieb:
Also meine Konfiguration ist jetzt deiner fast identisch.
Habe deine npd.conf übernommen, auch die smb.conf sieht fast so aus wie die, die du zuletzt gepostest hast.
Unterschiede hier sind jediglich der Eintrag
ldap server require strong auth = no
den hab ich nicht drin.
Den habe ich drin, damit sich User über den Browser via Basic Auth auf den gehosteten Websites gegen das AD authentifizieren können. Der apache2 hat anscheinend Probleme mit dem von Samba selbst erzeugten Zertifikat.


max_powers schrieb:
Auch habe ich nicht Samba 4.2, sondern 4.5. Selbstkompiliert direkt von github, da ich zuerst mit der Version 4.1.7 Probleme beim installieren hatte.

Intressanter weiße liefert mir getent nun auch die AD-Member & Gruppen, aber mit total falschen Einträgen:
Code:
#getent passwd
SAMBADC\administrator:*:0:100::/home/SAMBADC/administrator:/bin/false
SAMBADC\joelb:*:10001:100:Joel Bucher:/home/SAMBADC/joelb:/bin/false
SAMBADC\krbtgt:*:3000013:100::/home/SAMBADC/krbtgt:/bin/false
SAMBADC\guest:*:3000014:100::/home/SAMBADC/guest:/bin/false
Beim Nutzer joelb stimmt die UID, GID aber falsch.
Beim Admin stimmt beides nicht.
Und bei beiden ist das /bin/false natürlich auch nicht richtig :D
Okay, immerhin zeigt er bei dir auch die Domäne vor den Usernamen. Das ist laut Buch aber wohl auch erst seit Samba 4.3 so. Außerdem heißt es dort, dass das auflisten per getent passwd aus Performance-Gründen eh besser deaktiviert ist. Allerdings macht es mich halt misstrauisch, dass es generell gar nicht funktioniert bei mir.

Diesen Mixup aus mal richtigen und mal falschen Daten pro User habe ich auch. Meine UID und GID stimmen, aber die Login-Shell und das Home-Verzeichnis liest er aus dem Kaffeesatz - in keinem Fall aus dem AD.

max_powers schrieb:
Das einzige was ich geändert hatte war die ntpd Konfiguration.
Irgendwo habe ich gelesen, dass das v.a. wg. kerberos wichtig ist. Bei einer Abweichung > 5 Minuten fliegt der auf die Nase und die Anmeldung funktioniert nicht mehr.

max_powers schrieb:
Hast du geprüft ob die winbind links bei dir Korrekt sitzen?
https://wiki.samba.org/index.php/Libnss_winbind_links
Ja, das passt soweit.


max_powers schrieb:
Werde es nochmal mit den Optionen aus dem Samba-Wiki Artikel "Idmap config ad" probieren, also diese hier:
Code:
   # Default idmap config used for BUILTIN and local accounts/groups
       idmap config *:backend = tdb
       idmap config *:range = 2000-9999

       # idmap config for domain SAMDOM
       idmap config SAMDOM:backend = ad
       idmap config SAMDOM:schema_mode = rfc2307
       idmap config SAMDOM:range = 10000-99999

       # Use settings from AD for login shell and home directory
       winbind nss info = rfc2307



Werde wieder berichten wie es lief!
Ja, mach das bitte. Irgendwie bin ich mit meinem Latein gerade ziemlich am Ende.

Das "deprimierende" ist ja, dass die Freigaben auf einem Windows-Client ganz problemlos per compmgmt.msc eingerichtet werden können. Ich bin echt soooo kurz davor, einfach noch ne Kiste zu kaufen, um einen File-Server auf Windows-Basis hochzuziehen. In der c't war gerade ne nette Eigenbau-Anleitung. :roll:


Parallel experimentiere ich ein bisschen mit Freigaben per smb.conf. Damit bekomme ich zumindest read only Freigaben hin. Das ist alles sehr unbefriedigend. :mad:
 
Ja bin auch kurz davor mir einen externen Server noch hochzuziehen für Freigaben.
Es fuchst mich echt dass das nicht so funktioniert wie's soll, und dass man da irgendwie nicht wirklich weiter kommt. Für mich ist nicht ersichtlich wo der Fehler liegen soll..

Nochmal bzgl. getent: Da habe ich gelesen das dieser auch nur das \ mit dem Domänen-Namen vornedran setze wenn die Option winbind use default domain nicht gesetzt ist.
Vielleicht hast du die ja noch drin und er zeigt es deshalb nicht an.
In der Wiki findet man da ja auch kein \ vorne dran, falsch ist es deshalb denke ich nicht.

Mit der neuen smb.conf mit den idmap-settings hatte ich leider keinen Erfolg. Selbes Ergebnis. Auch habe ich es mal mit folgenden Settings probiert die ebenfalls in der Samba-Wiki zu finden sind:

Code:
i  # Default idmap config used for BUILTIN and local accounts/groups
       idmap config *:backend = tdb
       idmap config *:range = 2000-9999

       # idmap config for domain SAMDOM
       idmap config SAMDOM:backend = ad
       idmap config SAMDOM:schema_mode = rfc2307
       idmap config SAMDOM:range = 10000-99999

       # Use template settings for login shell and home directory
       winbind nss info = template
       template shell = /sbin/nologin
       template homedir = /home/%U

Da hat dann aber das anmelden nicht mehr geklappt :irre:

Hast du schon was bzgl. Pam konfiguriert oder eingestellt?
Das schau ich mir mal am Wochenden an, oder vielleicht versuch ich mich auch an einem von diesen Beiträgen:
https://wiki.samba.org/index.php/Sssd
https://wiki.samba.org/index.php/Nslcd

Länger mag ich mich damit nämlich nicht rumschlagen. Also mal ne Alternative versuchen..

gruß
 

spoensche

Moderator
Teammitglied
Auf dem Samba DC brauchst du keinen Winbind. Die Domänenbenutzer und Gruppen werden auch nicht in der /etc/passwd angelegt.

Du hast zu viele Einträge in deiner smb.conf.

Fang am besten noch mal von vorne an und gehe wie folgt vor:

1. Alte smb.conf löschen
2.
Code:
samba-tool domain provision --interactive
3. Die passenden Werte auf die Fragen von samba-tool eintragen
4. Warten bis smaba-tool fertig ist.

Danach mit dem Windows Rechner der Domäne beitreten und mittels RSAT konfigurieren.
 
Danke das du dich meldest.
Ja die smb.conf ist mittlerweile etwas zusammen geschustert.

Das ich kein winbind brauche .. bin ich mir nicht sicher.
In der Samba wiki steht das ein Name service switch benötigt wird, und winbind ist hier der Standart bei Samba.
Müssen die Windows SID's denn nicht auf dem Linux-System korrekt in UID's umgewandelt werden?

Ungeachtet dessen bleibt das eigentliche Problem beim Anlegen der Shares bestehen.
Das war das erste was ich versucht hatte nach meiner letzen Installation. Die smb.conf war nicht bearbeitet worden von mir, nur von samba-tool angelegt. Und trotzdem kam eben die Fehlermeldungen, zu sehen im Startpost.
Meine Vermutung ist eben hier, dass es an dem identity-mapping liegt.

Auch samba-tool ohne wenigstens die option --use-rfc2307 für posix Attribute ausführen hab ich noch nirgends gesehn.

Aber was hab ich zu verlieren, ein Versuch ist es Wert..

gruß

edit: Habe mal wieder paar Sachen versucht:

Zum einen ist mir aufgefallen das die Gruppe Domain Users die selbe GID besitzt wie die lokal befindliche Gruppe users:
Code:
wbinfo --sid-to-gid <sid von Domain Users>
100
Das sollte natürlich nicht so sein, habs auch gleich versucht zu ändern mit ldbedit
Code:
ldbedit -e nano -H /usr/local/samba/private/idmap.ldb
Dort dann die SID gesucht und bei xidNumber 10001 eingetragen.
Samba neugestartet -> immernoch gid 100.

Hatte hier vielleicht schon jemand erfolg damit die gid/uid zu ändern?
Verstehe nicht warum das bei mir nicht klappt hier .. bin nach Anleitung vorgegangen.

Habe ebenso versucht direkt auf dem Linux System shares anzulegen für die AD.
Das klappt soweit, bis auf das ich bei den roaming profiles auf meinem windows client dann die Meldung bekomme:
Code:
Es ist ein Problem mit ihrem servergespeicherten Profil aufgetreten.
Es wurde das lokale Profil erneut geladen.
 
OP
Phillinger

Phillinger

Member
spoensche schrieb:
Auf dem Samba DC brauchst du keinen Winbind. Die Domänenbenutzer und Gruppen werden auch nicht in der /etc/passwd angelegt.

Du hast zu viele Einträge in deiner smb.conf.

Fang am besten noch mal von vorne an und gehe wie folgt vor:

1. Alte smb.conf löschen
2.
Code:
samba-tool domain provision --interactive
3. Die passenden Werte auf die Fragen von samba-tool eintragen
4. Warten bis smaba-tool fertig ist.

Danach mit dem Windows Rechner der Domäne beitreten und mittels RSAT konfigurieren.

Auch von mir ein Dankeschön für die Antwort. Irgendwie hänge ich da echt in der Luft, aktuell.


Meine smb.conf ist (abgesehen von der einen Zeile "ldap server require strong auth = no") so vom samba-tool beim Provisionieren generiert worden. Da bin ich Schritt für Schritt der Anleitung gefolgt. Und ich hoffe mal, dass die im Samba-Wiki nicht Blödsinn schreiben. ;)

Jedenfalls ist da beim Erstellen des ad dc der Winbindd per default aktiv, da beim Provisionieren der Paramater "--use-rfc2307" angegeben wurde.

Und irgendwer/irgendwas muss sich bei Samba ja um das Mapping der IDs kümmern. Und das ist seit Samba 4.2 winbindd.


Es funktioniert ja prinzipiell auch alles! Wenn ich eine weitere Maschine als File-Server nutze, klappt das ja auch. Aber auch wenn ich kapiere, dass ein Fileserver nützlich und richtig ist, so will ich wenigstens einige Verzeichnisse auf dem AD DC per Samba freigeben können.

Und mit meinem aktuellen ID-Fuckup scheint das aktuell nicht möglich zu sein. Und das will ich so natürlich nicht akzeptieren. ;)
 
OP
Phillinger

Phillinger

Member
Okay, kleine Fortschritte hier in Sachen id-mapping:

Ich habe meine Installation mal ein bisschen "entrümpelt". Das Debian, auf dem das alles läuft, ist seit 2011 durchgängig in Betrieb und dementsprechend waren da noch einige .tdb und .ldb Files, die wer-weiß-was gespeichert hatten. Da habe ich zuerst mal alles, was alt und ungenutzt erschien, zunächst umbenannt und später gelöscht (als klar war, dass es auch ohne diese files geht).

Dann habe ich allen Usern, die bereits eine sidNumber und eine gidNumber hatten (in den UNIX-Attributen der RSAT), diese wieder gelöscht.

Wenn ich dann das abgefragt habe, zeigte er sie mir immer noch an - der übliche id-Fuckup.:
Code:
# wbinfo -i max.mustermann
max.mustermann:*:10000:10000:Max Mustermann:/home/PDOM/max.mustermann:/bin/false

Eigentlich dürfte hier gar nix erscheinen, da er ja weder eine gidNumber (10000) noch eine sidNumber (10000) hat. Also mal den Cache gelöscht:
Code:
net cache flush

Und siehe da: Beim erneuten Abfragen fliegt er (korrekterweise) auf die Nase, weil er ja keine UNIX-Attribute haben kann/soll:
Code:
# wbinfo -i max.mustermann
failed to call wbcGetpwnam: WBC_ERR_DOMAIN_NOT_FOUND
Could not get info for user max.mustermann

Jetzt wieder per RSAT dem User UNIX-Attribute verpasst, spaßeshalber um 1 inkrementiert, damit man den Unterschied sieht, und siehe da:
Code:
# wbinfo -i max.mustermann
max.mustermann:*:10001:10001:Max Mustermann:/home/PDOM/max.mustermann:/bin/false
(Ich habe die Gruppe "domain users" auch um 1 erhöht auf 10001)

Zumindest die ids scheinen jetzt aus dem AD zu stammen und zu stimmen. Darauf aufbauend kann ich jetzt vielleicht zumindest shares über die smb.conf anlegen und Zugriffe mit den Gruppen steuern - das würde mir dicke reichen. Ein Fileserver kann ja immer noch zugelegt werden. ;)

/ Die smb.conf ist übrigens immer noch die "schlanke" vom Eingangsposting.

// Aufgeräumt habe ich in den Verzeichnissen
Code:
/var/lib/samba/
/var/cache/samba/
Mit tdbdump und ldbdump kann man ja vorher mal reinschauen, ob die Inhalte noch relevant sind.
 

spoensche

Moderator
Teammitglied
max_powers schrieb:
Das ich kein winbind brauche .. bin ich mir nicht sicher.
In der Samba wiki steht das ein Name service switch benötigt wird, und winbind ist hier der Standart bei Samba.
Müssen die Windows SID's denn nicht auf dem Linux-System korrekt in UID's umgewandelt werden?

Der Nameservice Switch ist nicht gleich Winbind. Das eigentliche ID-Mapping übernimmt der ID-Mapper.

Zum anlegen der Freigaben:

Ich gehe davon aus, dass ihr eine separate Festplatte für die Freigaben vewendet.

1. In der /etc/fstab den Eintrag wiefolgt gestallten:
Code:
/dev/sdb1 /data ext4 acl,noatime,nodiratime,user_xattr

Prinzipiell könnt ihr die Freigaben entweder in der smb.conf oder aber in der Registry (registry.tdb).keys verwalten.

Die Verwaltung per Registry ist sehr zu empfehlen und ich gehe auch nur auf diese ein.

Verzeichnis anlegen:
Code:
mkdir /data/freigabe

Share anlegen:
Code:
net conf addshare freigabe /daten/freigabe writeable=y guest_ok=n "Freigabe in der Registry"

Share anzeigen:
Code:
net registry export hklm\\software\\samba /dev/stdout

Zugriff testen:
Code:
smbclient -L localhost -U Administrator

Mit
Code:
net conf setparm freigabe "option" "wert"

könnt ihr zusätzliche Berechtigungen setzen.

Die jeweiligen Dateiberchtigungen auf der Freigabe sollten dann unter Windows gesetzt werden. Wichtig: Das müsst ihr mit dem User Administrator durchführen.
 
OP
Phillinger

Phillinger

Member
Danke, dass du dran bleibtst! :)


Wenn ich auf diese Art eine Freigabe erstelle, erscheint diese leider nicht unter smbclient -L ... . Aber eventuell hängt das auch mit dem Problem zusammen, das ich in dem anderen Thread schildere.


Aktuell habe ich einfach noch einen Fileserver hochgezogen, auf dem Windows 10 Pro läuft. Damit klappen die Freigaben einwandfrei. Aktuell ist also hier nicht der große Druck dahinter, Freigaben auf dem ad dc erstellen zu können. Aber prinzipiell sollte das schon klappen, also werde ich dran bleiben. Aber vorher fürchte ich, muss ich das o.g. Problem lösen. Danach geht's hier weiter.
 

spoensche

Moderator
Teammitglied
Du musst smbclient wie folgt aufrufen:

Code:
smbclient -L localhost -U Administrator

Wenn du als Gastuser keine Berechtigung hast, dann bekommst du die Freigabe nicht angezeigt.
 
OP
Phillinger

Phillinger

Member
Ich war nur zu faul zum kompletten Eintippen, den Aufruf habe ich komplett eingegeben. Hier die aktuelle Ausgabe(n):

Code:
root@albert:/# net registry export hklm\\software\\samba /dev/stdout
Windows Registry Editor Version 5.00

[HKLM\software\samba]

[HKLM\software\samba\smbconf]

[HKLM\software\samba\smbconf\freigabe]
"path"="/home/freigabe"
"comment"="Testfreigabe"
"guest ok"="no"
"read only"="no"

[HKLM\software\samba\Group Policy]
;Local Variables:
;coding: UTF-8
;End:
root@albert:/#

Dann der Test per smbclient:
Code:
root@albert:/# smbclient -L localhost -U Administrator
Enter Administrator's password:
Domain=[PFLDOM] OS=[Unix] Server=[Samba 4.2.10-Debian]

        Sharename       Type      Comment
        ---------       ----      -------
        netlogon        Disk
        sysvol          Disk
        IPC$            IPC       IPC Service
Domain=[PFLDOM] OS=[Unix] Server=[Samba 4.2.10-Debian]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
root@albert:/#

Auch im Explorer: Er zeigt es einfach nicht an. Im Logfile finde ich auch nichts:
Code:
[2016/05/23 11:30:17.590277,  3] ../source4/smb_server/smb/negprot.c:429(reply_nt1)
  using SPNEGO
[2016/05/23 11:30:17.590355,  3] ../source4/smb_server/smb/negprot.c:558(smbsrv_reply_negprot)
  Selected protocol [8][NT LANMAN 1.0]
[2016/05/23 11:30:17.591168,  3] ../auth/ntlmssp/ntlmssp_util.c:69(debug_ntlmssp_flags)
  Got NTLMSSP neg_flags=0x62088215
[2016/05/23 11:30:17.591670,  3] ../auth/ntlmssp/ntlmssp_server.c:449(ntlmssp_server_preauth)
  Got user=[Administrator] domain=[PFLDOM] workstation=[ALBERT] len1=24 len2=314
[2016/05/23 11:30:17.591727,  3] ../source4/auth/ntlm/auth.c:270(auth_check_password_send)
  auth_check_password_send: Checking password for unmapped user [PFLDOM]\[Administrator]@[ALBERT]
  auth_check_password_send: mapped user is: [PFLDOM]\[Administrator]@[ALBERT]
[2016/05/23 11:30:17.599622,  3] ../auth/ntlmssp/ntlmssp_sign.c:509(ntlmssp_sign_reset)
  NTLMSSP Sign/Seal - Initialising with flags:
[2016/05/23 11:30:17.599668,  3] ../auth/ntlmssp/ntlmssp_util.c:69(debug_ntlmssp_flags)
  Got NTLMSSP neg_flags=0x62088215
[2016/05/23 11:30:17.599721,  3] ../auth/ntlmssp/ntlmssp_sign.c:509(ntlmssp_sign_reset)
  NTLMSSP Sign/Seal - Initialising with flags:
[2016/05/23 11:30:17.599739,  3] ../auth/ntlmssp/ntlmssp_util.c:69(debug_ntlmssp_flags)
  Got NTLMSSP neg_flags=0x62088215
[2016/05/23 11:30:17.608229,  3] ../source4/smb_server/tcon.c:106(smbsrv_tcon_destructor)
  ipv4:127.0.0.1:37529 closed connection to service IPC$
[2016/05/23 11:30:17.608450,  2] ../source4/smbd/process_standard.c:203(standard_terminate)
  standard_terminate: reason[NT_STATUS_END_OF_FILE]

Echt komisch. :???:
 

spoensche

Moderator
Teammitglied
Du hast die Freigabe unter /home erstellt. In diesem Verzeichnis liegen nur die Heimatverzeichnisse der Benutzer und Gruppen. Auf diese Verzeichnisse hat auch nur der jeweilige Eigentümer Zugriff. Samba kann das Verzeichnis also nicht lesen.


Mach mal folgendes:

1. Überprüfe in der /etc/fstab, ob / mit den Optionen acl und user_xattr gemountet wird. Wenn nicht, dann trage die Optionen dort ein und führe danach
Code:
mount -o remount /
aus.

2. Lege unter /srv ein Verzeichniss an
Code:
mkdir /srv/testfreigabe
und ändere die Berechtigungen
Code:
chmod 777 /srv/testfreigabe
3. Freigabe konfigurieren:
Code:
net conf add share Testfreigabe /srv/testfreigabe writeable=y guest_ok=n "Testfreigabe"
net conf setparm Testfreigabe "browsable" "yes"
 
OP
Phillinger

Phillinger

Member
Vielen Dank für's Dranbleiben! :thumbs:

Wir sind gerade am Packen, morgen geht's in den Urlaub - danach geht's wieder weiter.


Bis dahin eine kleine Verständnisfrage: Sind acl und user_xattr nicht per default aktiv bei ext4 unter Debian 8?
 
Oben