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

Linux client in Domäne aufnehmen

pft

Advanced Hacker
Hallo

ich habe einen Linux Server (Suse 10.2) als PDC laufen mit 2 Win XP clients. Soweit so gut

Nun will ich noch enen Linux client aufnehmen (genauer gesagt eine Suse11.0 installation in vmware auf einem WinXP client)

Und scheitere beim Domänenbeitritt. Schon der test geht schief:
Code:
SuSE11_A:/root # net rpc testjoin
[2008/10/08 22:45:34,  0] rpc_client/cli_pipe.c:get_schannel_session_key_common(2449)
  get_schannel_session_key: could not fetch trust account password for domain 'MYDOMAIN'
[2008/10/08 22:45:34,  0] utils/net_rpc_join.c:net_rpc_join_ok(87)
  net_rpc_join_ok: failed to get schannel session key from server MYPDC for domain MYDOMAIN. Error was NT_STATUS_CANT_ACCESS_DOMAIN_INFO
Join to domain 'MYDOMAIN' is not valid: NT_STATUS_CANT_ACCESS_DOMAIN_INFO
Beim echten Beitrittsversuch sieht das so aus:
Code:
SuSE11_A:/root # net rpc join member -Uroot%password
[2008/10/08 23:03:37,  0] utils/net_rpc_join.c:net_rpc_join_newstyle(349)
  error setting trust account password: NT code 0x1c010002
Unable to join domain MYDOMAIN.
Maschinen accounts in passwd und smbpasswd werden aber angelegt. In der smbpasswd allerdings mit Disabled-Flag gesetzt.

Ein Zugriff mittels smbclient auf ein share geht auch.

Any idea?

hier die smb.conf des client:
SuSE11_A:/etc/samba # cat smb.conf
Code:
# smb.conf is the main Samba configuration file. You find a full commented
[global]
        workgroup = MYDOMAIN
        security = domain
        password server = mypdc
        winbind use default domain = yes
        server signing = disabled
[tmp]
comment = temporary files
path = /tmp
read only = yes

Das server signing hab ich eingetragen, weil es am server auch so eingestellt ist. Mit "auto" hatte ich glaube ich mal 'ne Menge von Fehlermeldungen in den logs.

Für weitere Ausgaben, sagt einfach was Ihr braucht.
 

stka

Guru
Ist der root denn in der Domäne berechtigt Maschinen in die Domäne aufzunehmen? Du musst einen Administrator haben der in der Gruppe Domänenadmins (RID=512) ist, sonst klappt das nicht und der muss bei " net rpc join" verwendet werden.
 
OP
P

pft

Advanced Hacker
Hallo,

hat leider etwas gedauert, bin aber jetzt ein ganzes Stück weiter.

In der Domäne ist die Kiste jetzt. Die Einträge in passwd und smbpasswd waren da aber irgendwie falsch. So wie in den von mir benutzten Anleitungen (samba.org, linux-club wiki) ging das irgend wie nicht. Manuell ging es dann.

Jetzt habe ich aber immer noch ein paar kleine (?) Probleme:
Anmelden mit einer domänenkennung scheitert an massiven Beschwerden von KDE. Das Problem ist, dass lokal kein home directory mit entsprechenden Templates da ist.
Nachdem ich eine lokale Kennung gelöscht und die Dateien mit "find ... -uid alt -exec chown neu {} \;" auf einen domänenuser übertragen habe, geht es für diesen User gut.

Wie stelle ich es nun an, auch für andere Domänenuser das home-directory anzulegen?
Sollte man das nicht sinnigerweise vom Domänenserver mounten per nfs? (Tipps dazu?) Dann müssten aber doch die UIDs zwischen allen Clients und dem Server "synchronisiert" sein, was nicht unbedingt der Fall ist oder?
 

stka

Guru
Entwer du mountest das $HOME über NFS oder über einen Samba share. Von lokalen $HOME kann ich dir nur abraten, dass ist viel zu viel Aufwand.
 
OP
P

pft

Advanced Hacker
Ja, smb ist wohl die bessere Lösung, zumal Linux Clients erst mal die Ausnahme bleiben werden.

Das heißt wohl sich pam-mount ansehen. Die config.xml sieht ja widerlich aus. Da gibt es bestimmt was geeigneteres als vi, oder?

Was mich noch irritiert ist das Mapping der UIDs und GIDs. Derzeit haben die User auf Server und Client verschiedene. Ich bin aber noch unsicher ob das wirklich ein Problem ist oder nicht. Sehe ich das richtig, dass ich mit Suse-Cleint und Samba-PDC den uid und gid Parameter beim mounten nicht brauche?

EDIT
Probieren (derzeit noch manuell, ohne pam_mount) macht schlau: es ist ein Problem! Die Dateien auf dem Server habe nach dem mounten auf dem client die owner-uid die auf dem Server gilt. Folglich kann ich nicht mal Dateien anlegen.
\EDIT

Zum anderen habe ich vermutlich noch ein dual boot problem. Ich habe auf einem Client winXP und Suse parallel installiert. Da aber die MAC adresse die gleiche ist, also auch IP-Adresse und Rechnername weiß ich nicht wie ich unterschiedliche Maschinenaccoutns anlegen soll. Woran wird der festgemacht?
Reicht es den Rechnernamen cleint-seitig festzulegen statt über DHCP?
Könnte man mittels irgendwelcher optionaler Parameter im Client DHCP-Server-seitig das gebootete System unterscheiden und dann unterschiedliche Rechnernamen vergeben?
 

stka

Guru
Die ID ist, wie du ja schon selber herausgefunden hast, sehr wichtig. Zu den Namen, ja es reicht wenn der Netbios Name unterschiedlich ist. Die IP und die MAC spielen bei Windowsnetzen keine Rollen in der Netbios Domäne.
 
OP
P

pft

Advanced Hacker
Hi

Das mit dem Netbiosnamen war gut - hätte mir wahrscheinlich wieder einen Wolf gesucht :)
Das heisst aber trotzdem lokal fest zuweisen statt über DHCP, oder?

Mit den IDs das wird zum Problem. Ich habe keinen Schimmer wie ich das anstellen soll. Ich meine sogar irgendwo auf Samba.org gelesen zu haben dass die mehr oder weniger zufällig vergeben werden und das meine Konfig dafür ungeeignet ist:
Winbind/NSS with the default local IDMAP table:
[...]
This configuration is not convenient or practical in sites that have more than one Samba server and that require the same UID or GID for the same user or group across all servers.

Für meine handvoll user ist ldap aber der overkill. Gibt es einen Weg das "händisch" doch hinzubekommen?

EDIT:
Hab mich mal selbst auf die Suche gemacht. man kann ja das idmap file dumpen, ändern und dann wieder laden. Wäre das der richtige Weg? Wann / Wie oft muss ich das tun? beim Systemstart oder nur wenn sich an der userliste etwas ändert?
\EDIT

BTW, ich sehe am Client mit "getent passwd" alle users des PDC mit UID>999 statt nur die innerhalb der mit idmap gesetzten Grenzen (10000-20000). Ist das normal? Ich hatte das eigentlich anders verstanden.
 

stka

Guru
Das mit deinen IDs verstehe ich irgendwie noch nicht so richtig. Du hast ein Benutzer der ist linux/samba user der meldet sich unter Linux und unter Windows an. Das sind beides verschieden paar Schuhe. Die IDs die für die Vergabe der Rechte letztendlich wichtig sind, sind die Linux UIDs und GIDs. Wenn du ein Verzeichnis über NFS einmountest, müssen natürlich auf dem Server und dem/den Client/s die IDs identisch sein. Alles um dieses gefrickel zu verhindern würde ich das mit LDAP machen, da hast du alle Benutzer und Gruppen zentral und braucht dir darum keine Gedanken mehr zu machen.
 
OP
P

pft

Advanced Hacker
Du hast ja recht LDAP scheint hier richtig zu sein. Aber soll ich mir das wirklich antun für 4 User plus ein paar test und admin accounts und eine qusai statische Umgebung?

Wo genau das Problem versuch ich nochmal zu erklären:
Also erstmal habe ich eine "normale" Domäne mit 3 XP Prof clients an einem Suse "Home-server". Soweit so gut.
Neben den Erfahrungen mit der Serverseite von Linux will ich jetzt gerade ein wenig mit der Desktopvariante herumspielen und dazu aber die vorhandenen Accounts und Daten (Mail etc) nutzen, damit das ganze ein wenig Praxisrelevanz bekommt.

Das ganze mach ich in zwei Variante:
1. Dualboot auf dem Client
2. suse im vmplayer auf dem XP host

Wenn ich nun auf dem client beispielsweise einige shares mounte, dann haben die directories (testdir, testdir2) sowie die Inhalte die Ownership entsprechend den UIDs auf den SambaServer (stefan=1004). Also muss ich sehen dass ich lokal (stefan=10001) die gleichen verwende.

Hier mal ein etwas verkürzter Mitschnitt:
Code:
~> mkdir /home/stefan/testdir
~> sudo ls -lna
drwxr-xr-x 11 10001 10000  4096  4. Nov 17:09 .
drwxr-xr-x  6     0     0  4096  3. Nov 18:45 ..
drwxr-xr-x  2 10001 10000  4096  4. Nov 17:05 testdir
~>
~> sudo mount -t cifs sonne:stefan /home/stefan/testdir
~>
~> sudo ls -lna
drwxr-xr-x 11 10001 10000  4096  4. Nov 17:09 .
drwxr-xr-x  6     0     0  4096  3. Nov 18:45 ..
drwxr-xr-x 21 10004   10003     0 25. Okt 20:18 testdir
~> sudo ls -ln testdir
drwxr-xr-x 2 10004 10003        0 14. Okt 16:58 Aufnahmen
-rwxr--r-- 1 10004 10003    15548  7. Jul 18:03 Der Eisbär.pdf
 

stka

Guru
Wie gesagt, wichtig sind die Linux UIDs und GIDs. Du kannst doch auch nachträglich die UIDs oder GIDs ändern, usermod und groupmod sind da deine Freunde.
 
OP
P

pft

Advanced Hacker
Ne, geht nicht.

Ändern am Server bringt ja nix. ich könnte ja mehere Server haben

Am Client geht es nicht weil usermod offensichtlich nur lokale User erlaubt - eigentlich naheliegend :-(

Das dumpen der idmap, korrigieren und wieder einlesen scheint zu gehen. (abgesehen vom Fehler in der Doku auf samba.org)

Ich habe erst ein paar wenige Tests gemacht und es sieht gut aus.

Leider habe ich noch ein paar andere Probleme bzw. Hausaufgaben zu machen, bevor ich intensiv testen kann.
1. die Group-mappings stimmen noch nicht ganz, v.a. Mitgliedschaften in mehreren gruppen (wie geht das, wo kommt diese Info her?)
2. verlegen einiger user auf den Server von 10xx nach 100xx. Hab damit schon mal angefangen, mir aber massive Probleme auf den mit den Profilen auf den Clients eingehandelt und dann damit aufgehört. Das ist nämlich da viel weniger lustig als unter linux.

Melde mich dann wieder :)

BTW, hab gerade ein ganz saublöden Effekt. Während ich diesen Post hier schrieb (auf Win-client) sprang auf dem linux client in vmware der Bildschirmschoner an - noch mitr der Defaulteinstellung mit Passwortabfrage. Jetzt fragt er mich nach dem Passwort von "MY_DOMAIN\nobody" :???:
Und ich habe keine Ahnung wie ich da wieder raus komm :)
 
OP
P

pft

Advanced Hacker
nobody hat kein Passwort
Ja, dachte ich auch. Also hab ich einfach <ok> gedrückt, aber das war ihm zu wenig. Keine Ahnung ob es überhaupt eine richtige Möglichkeit gegeben hätte.
Das kommt halt davon, wenn man UIDs im laufenden Betrieb ändert, ohne die Dateien gleich mit zu übertragen. Dazu war hier auch noch der User eingeloggt und ich habe die Änderungen mittels "su" gemacht.
Da gab's dann zu Recht eins auf die Pfoten :)

Ansonsten scheint das aber der richtige Weg zu sein.
 
Oben