Gruppen unterscheiden sich von den lokalen Gruppen, wenn Sie sich remote anmelden

14

Wir speichern unsere Benutzer in LDAP, zusammen mit einigen Gruppen, die systemübergreifend Bedeutung haben (einschließlich organisatorischer Rollen wheel). Es gibt auch Gruppen lokal für Arbeitsplätze, zum Beispiel audiooder videodie nicht erwünscht ist gesetzt in LDAP zu werden. Wenn ich mich lokal anmelde, erhalte ich diese lokalen Gruppen, aber wenn ich mich über SSH auf demselben Computer anmelde, fehlen sie. Sie kommen natürlich wieder, wenn ich sie sugleich danach benutze . Ich bin vielleicht auf dem falschen Weg, aber ich vermute PAM.

Relevante Einträge von nsswitch.conf

passwd:      compat ldap
shadow:      compat ldap
group:       compat ldap

Bezüglich pam immer die auth-Zeile, aber die anderen Zeilen sind die gleichen

/etc/pam.d/sshd

auth            include         system-remote-login

/etc/pam.d/system-remote-login(identisch mit system-local-loginich könnte hinzufügen)

auth            include         system-login

/etc/pam.d/system-login

auth            required        pam_tally2.so onerr=succeed
auth            required        pam_shells.so 
auth            required        pam_nologin.so 
auth            include         system-auth
auth            optional        pam_gnome_keyring.so

account         required        pam_access.so 
account         required        pam_nologin.so 
account         include         system-auth
account         required        pam_tally2.so onerr=succeed 

password        include         system-auth
password        optional        pam_gnome_keyring.so

session         optional        pam_loginuid.so
session         required        pam_env.so 
session         optional        pam_lastlog.so 
session         include         system-auth
session         optional        pam_gnome_keyring.so auto_start
session         optional        pam_motd.so motd=/etc/motd
session         optional        pam_mail.so

/etc/pam.d/su

auth       sufficient   pam_rootok.so
auth       required     pam_wheel.so use_uid
auth       include              system-auth

account    include              system-auth

password   include              system-auth

session    include              system-auth
session    required     pam_env.so
session    optional             pam_xauth.so

/etc/pam.d/common-auth:

auth    required     pam_group.so use_first_pass

Was könnte das Problem sein und wie würde ich es lösen? Gerne stelle ich Ihnen weitere benötigte Informationen zur Verfügung.

Max
quelle
Wie sieht dein /etc/nsswitch.confAussehen aus group? Was ist die Ausgabe von getent YOURUSERNAME? Enthält Ihr /etc/pam.d/sshd@ common- {session, auth, password, account}?
Eppesuig
Welche Prozesse / Schritte richten Sie am Clientende ein?
Rahul Patil
1
@Aurelien, wenn Sie "shadow ldap" haben, dann führt pam_unix die Authentifizierung durch und ruft die Passwortinformationen von nss ab.
Stéphane Chazelas
1
Ich denke, Sie sind nicht auf dem richtigen Weg, um PAM zu verdächtigen. Eher ein NIS-Problem. PAM hat überhaupt keine Ahnung von Gruppen; Dies geschieht alles über libc, wenn sshd initgroups aufruft.
Nicholas Wilson
1
Eigentlich ändere ich das ein wenig: Anscheinend binden einige Module den Aufruf von pam_setcred ein, um Benutzergruppen einzurichten, weshalb sshd initgroups vor pam_setcred aufruft. Hmmm.
Nicholas Wilson

Antworten:

3

Ich habe mir heute ein Herz genommen und es endlich gelöst. Die Pam-Kette funktioniert so

  • /etc/pam.d/sshd beinhaltet:
    • /etc/pam.d/system-remote-login das beinhaltet:
      • /etc/pam.d/system-login das beinhaltet:
        • /etc/pam.d/system-auth das hat eine optionale Anforderung

Anscheinend funktioniert das letzte Include aus irgendeinem Grund nicht. Der Grund, warum ich bisher so verwirrt war, war, dass ich darauf vertraute, dass diese Includes funktionieren würden, was nicht der Fall war. Wenn jemand erklären kann, warum ich sehr dankbar wäre. Ich weiß das, weil, wenn ich die Linie hinzufüge

auth    optional  pam_group.so

in die /etc/pam.d/system-logindann klappt es.

Max
quelle
1

Das Anmeldeprogramm (das Ihre Umgebung einrichtet, einschließlich UID, GID und ergänzender Gruppen) erhält Daten zu Benutzername <-> UID, GID und den ergänzenden Gruppen, zu denen der Benutzername gehört, aus einer Art Datenbank. Traditionell aus den Dateien / etc / passwd und / etc / groups, heute auch aus LDAP. Abhängig von der Datenquelle können die zugewiesenen Gruppen variieren.

Seien Sie vorsichtig, wenn verschiedene Quellen gemischt werden, können Sie sehr gut ein Konto mit demselben Namen, aber unterschiedlichen UIDs (das System verwendet die UID tatsächlich intern) oder unterschiedlichen Gruppengruppen erhalten. Das Ergebnis ist normalerweise für den gelegentlichen Betrachter sehr unterhaltsam, während es zu einer vorzeitigen Kahlköpfigkeit führt, da die verantwortlichen Parteien häufig an den Haaren ziehen. (War dort.)

vonbrand
quelle
0

In nsswitch.conf:

    Gruppe: kompatibles ldap

afaik das ruft getgrent auf, das die Gruppen erhält (Gruppeneinträge)

BEARBEITEN: eine andere Sache ist das Folgende hinzuzufügen /etc/pam.d/common-auth:

auth erforderlich pam_group.so use_first_pass

Weitere Informationen finden Sie hier: Weisen Sie Benutzern lokale Gruppen und möglicherweise dieser neuen Gruppe-und-Gruppen-zu, die-über-Pam-Gruppe-so-zugewiesen wurden

xx4h
quelle
Diese Linie ist schon einfach so vorhanden.
Max
füge es vielleicht zu "Relevante Einträge von nsswitch.conf" in deiner Frage hinzu.
xx4h
erledigt und die Bearbeitung hat leider nicht geholfen.
Max
hast du gemacht pam-auth-updateund einen nscd neustart gemacht?
xx4h
0

Ich hatte ein fast ähnliches Problem: Bei der Anmeldung mit ssh fehlten einige Gruppen. Es wurde durch Ändern von /etc/nsswitch.conf gelöst:

group:      compat  -> group:      files nis
Jean-François Bocquet
quelle