Kein login für NIS user (weder via ssh noch lokal X11 noch lokal noroot 'su - nis_user')

Hi habe ein Problem mit LEAP15.2 als NIS client.
Ein Login eines NIS-User ist nicht möglich. Das Homeverzeichnis ist ein NFS-Verzeichnis. NIS-Server ist auch NFS-Server. Als root kan ich eich ‘su - nis_user’ ausführen und bin im richtigen Homevereichnis. Als Nichtroot-User ist das nicht möglich.


stlu@jarada:~> su - stefan
Passwort: 
su: Berechtigung verweigert
stlu@jarada:~> su - stefan
Passwort: 
su: Fehler bei Authentifizierung

Die zweite Fehlermeldung ist OK, da ich ein falsches Passwort angegeben habe.

Mit ssh Debugging (ssh vom NIS-Server) sehe ich folgendes (Ausschnitte):


2021-05-14T12:56:13.526579+02:00 localhost sshd[3468]: debug3: PAM: sshpam_query entering
2021-05-14T12:56:13.526854+02:00 localhost sshd[3468]: debug3: ssh_msg_recv entering
2021-05-14T12:56:13.527156+02:00 localhost sshd[3470]: debug1: do_pam_account: called
2021-05-14T12:56:13.527358+02:00 localhost sshd[3470]: debug2: do_pam_account: auth information in SSH_AUTH_INFO_0
2021-05-14T12:56:13.527557+02:00 localhost sshd[3470]: debug3: PAM: do_pam_account pam_acct_mgmt = 6 (Permission denied)
2021-05-14T12:56:13.527757+02:00 localhost sshd[3470]: debug3: ssh_msg_send: type 13
2021-05-14T12:56:13.527959+02:00 localhost sshd[3468]: debug3: PAM: User account has expired
2021-05-14T12:56:13.528133+02:00 localhost sshd[3468]: error: PAM: User account has expired for stefan from 192.168.192.4
2021-05-14T12:56:13.528277+02:00 localhost sshd[3468]: debug3: mm_request_send entering: type 107
..
2021-05-14T12:56:13.536440+02:00 localhost sshd[3468]: debug3: mm_sshpam_init_ctx [preauth]
2021-05-14T12:56:13.536513+02:00 localhost sshd[3468]: debug3: mm_request_send entering: type 104 [preauth]
2021-05-14T12:56:13.536615+02:00 localhost sshd[3468]: debug3: mm_sshpam_init_ctx: waiting for MONITOR_ANS_PAM_INIT_CTX [preauth]
2021-05-14T12:56:13.536752+02:00 localhost sshd[3468]: debug3: mm_request_receive_expect entering: type 105 [preauth]
2021-05-14T12:56:13.536837+02:00 localhost sshd[3468]: debug3: mm_request_receive entering [preauth]
2021-05-14T12:56:13.536912+02:00 localhost sshd[3468]: debug3: mm_request_receive entering
2021-05-14T12:56:13.536997+02:00 localhost sshd[3468]: debug3: monitor_read: checking request 104
2021-05-14T12:56:13.537083+02:00 localhost sshd[3468]: fatal: monitor_read: unpermitted request 104
2021-05-14T12:56:13.537160+02:00 localhost sshd[3468]: debug1: do_cleanup
2021-05-14T12:56:13.537239+02:00 localhost sshd[3468]: debug1: PAM: cleanup

NIS funktioniert. Kann problemlos zu einem Raspberry ssh-login durchführen.

Bin für jeden Hinweis dankbar.

Viele Grüße
Stefan

Laut der Fehlermeldung ist die Userid bzw. das Password des Users mit einem Ablaufdatum versehen und abgelaufen. Entweder neues Password vergeben oder das Password als nie ablaufend definieren.

Ja die Meldung hab ich auch gesehen, ich kann ihr aber nicht so ganz glauben.

  1. Auf dem Raspberry funktioniert es.
  2. Auf meinem alten Gentoo system funktioniert es auch.

Die expiration Info in kommt aus /etc/shadow .

Für den NIS User liefert ‘ypmatch stefan shadow.byname’:
stefan:xxx-das passwort-xx:18461:0:99999:7:::

Für den lokalen User ergibt ein ‘grep stlu /etc/shadow’:
stlu:xxx-das_passwort-xx:18461:0:99999:7:::

Die Ausgaben sehen ziemlich ähnlich aus.

So jetzt bin ich ein Stück weiter. Die erste Fehlermeldung bezieht sich auf den Account.

2021-05-14T12:56:13.527358+02:00 localhost sshd[3470]: debug2: do_pam_account: auth information in SSH_AUTH_INFO_0
2021-05-14T12:56:13.527557+02:00 localhost sshd[3470]: debug3: PAM: do_pam_account pam_acct_mgmt = 6 (Permission denied)
2021-05-14T12:56:13.527757+02:00 localhost sshd[3470]: debug3: ssh_msg_send: type 13
2021-05-14T12:56:13.527959+02:00 localhost sshd[3468]: debug3: PAM: User account has expired
2021-05-14T12:56:13.528133+02:00 localhost sshd[3468]: error: PAM: User account has expired for stefan from 192.168.192.4

In /etc/pam.d/common-account-pc wird eine lokale Userdefinition verlangt. Das steht ja wohl im Wiederspruch zu einem NIS User.

account required        pam_unix.so     nis try_first_pass 
account required        pam_localuser.so 

Zum Testen hatte ich hier debug Flags gesetzt.

account required        pam_unix.so     debug nis try_first_pass 
account required        pam_localuser.so debug

So bekam ich folgende Ausgabe im /var/log/messages

2021-05-15T10:15:32.796275+02:00 localhost sshd[8146]: debug2: do_pam_account: auth information in SSH_AUTH_INFO_0
2021-05-15T10:15:32.797479+02:00 localhost sshd[8146]: pam_localuser(sshd:account): checking "avahi:x:466:468:User for Avahi:/run/avahi-daemon:/bin/false#012"
2021-05-15T10:15:32.797669+02:00 localhost sshd[8146]: pam_localuser(sshd:account): checking "bin:x:1:1:bin:/bin:/sbin/nologin#012"
..
2021-05-15T10:15:32.800289+02:00 localhost sshd[8146]: pam_localuser(sshd:account): checking "stlu3:x:800:100:stlu:/home/nfs/stefan:/bin/bash#012"
2021-05-15T10:15:32.800359+02:00 localhost sshd[8146]: pam_localuser(sshd:account): checking "stlu:x:1000:100:stlu:/home/stlu:/bin/bash#012"
2021-05-15T10:15:32.800432+02:00 localhost sshd[8146]: debug3: PAM: do_pam_account pam_acct_mgmt = 6 (Permission denied)

pam_unix und pam_localuser sind required und führt zu einem Fehler. Habe nun pam_unix von required auf sufficient geändert.

account sufficient      pam_unix.so     debug nis try_first_pass 
account required        pam_localuser.so debug

So wird beim einem Erfolg von pam_unix nicht mehr auf einen lokalen User geprüft. Jetzt kann ich als lokaler user ‘su - NIS_USER’ und von remote mich auch via ssh mit einem NIS-User anmelden. X11 Anmeldung funktioniert natürlich auch :slight_smile: .

Hi,

I’m experiencing the same problem with openSUSE Leap 15.3 as NIS client. Trying to autenticate as a NIS user, for example using su - <user>, fails with error:

su: user <user> does not exist or the user entry does not contain all the required fields

nevertheless the NIS client utilities (ypcat, ypwhich, ypmatch … etc.) works normally.
I was figured that could be a PAM related problem and this forum thread confirmed it to me. However the proposed solution, although good, is somewhat “quick and dirty”: it could be a not complete or final solution to the problem and the manual modification of a file under /etc/pam.d could be overwritten by other configuration scripts/utility, in particular pam-config.

I compared the content of /etc/pam.d between an installation of openSUSE 13.2 (where NIS authentication works) and openSUSE Leap 15.3 (where it doesn’t work).

In openSUSE 13.2 grep nis /etc/pam.d/* gives:


/etc/pam.d/common-account:account    required    pam_unix.so    **nis** try_first_pass 
/etc/pam.d/common-account-pc:account    required    pam_unix.so    **nis** try_first_pass 
/etc/pam.d/common-auth:# traditional Unix authentication mecha**nis**ms.
/etc/pam.d/common-auth:auth    required    pam_unix.so    **nis** try_first_pass 
/etc/pam.d/common-auth.pam-config-backup:# traditional Unix authentication mecha**nis**ms.
/etc/pam.d/common-auth-pc:# traditional Unix authentication mecha**nis**ms.
/etc/pam.d/common-auth-pc:auth    required    pam_unix.so    **nis** try_first_pass 
/etc/pam.d/common-password:password    required    pam_unix.so    use_authtok nullok shadow **nis** try_first_pass 
/etc/pam.d/common-password-pc:password    required    pam_unix.so    use_authtok nullok shadow **nis** try_first_pass 
/etc/pam.d/common-session:session    required    pam_unix.so    **nis** try_first_pass 
/etc/pam.d/common-session-pc:session    required    pam_unix.so    **nis** try_first_pass

whilst in openSUSE Leap 15.3:


/etc/pam.d/common-auth:# traditional Unix authentication mecha**nis**ms.
/etc/pam.d/common-auth.pam-config-backup:# traditional Unix authentication mecha**nis**ms.
/etc/pam.d/common-auth-pc:# traditional Unix authentication mecha**nis**ms.

so, in openSUSE Leap 15.3 PAM there is no track of NIS, but giving a look at pam-config man page one could find that it’s possible to give the command:


**pam-config -a --unix-nis**

that makes the configurations in /etc/pam.d almost identical and now the NIS authentication works.

I think that this have to be reported as a bug in the latest versions of the openSUSE distribution. Where could this bug be located? Perhaps in one of the following:

  • the YaST NIS-client module;
  • some post-install script in the NIS-client related packages;
  • the PAM default configuration maker script.

Bye.

This is a 15.2 thread. Thus start a new thread (and you may reference this one) and please do so in the language that is used in the language section you post in!