12.3 pam nis

bommel

New Member
Hallo,

ich habe ein Problem mit 12.3 Clients; ich kann [weder als User noch als root]] via 12.3 NIS-Clients keine NIS-Passwörter [die liegen auf einem separaten Server] mehr ändern.
Code:
>> passwd nisnutzer
passwd: Benutzer bei zu Grunde liegendem Authentifizierungsmodul nicht bekannt
passwd: Passwort nicht geändert
mit LOG-Message
Code:
passwd[4800]: pam_unix(passwd:chauthtok): user "nisnutzer" does not exist in /etc/passwd
Das Problem lässt sich beheben, wenn man von einem 12.1 Rechner das Verzeichnis

/etc/pam.d

auf den 12.3 Client kopiert [scheint mir aber nicht so sauber zu sein]; nicht aber, wenn man mit

Code:
pam-config --create
ein "Default"-Konfiguration erstellt.

Der Grund könnte sein, dass openSuSe jetzt pam_unix.so statt pam_unix2.so verwendet [war einer 12.3 Ankündigung zu entnehmen; das kopierte pam.d verwendet noch pam_unix2.so]!?

Dementsprechend meine Frage(n):

1. Ist das ein Bug [keine NIS-PW ändern als Default]
2. Wie konfigueriere ich ein 12.3 so, dass ich NIS-PW ändern kann [genauer: jeder User sein eigenes mit PW-Eingabe, root alle PW ohne PW-Eingabe... ...so wie sonst seit Jahren der Default ist]?
 

bommel

New Member
Danke für die Formatierungshilfen; werde das nächste Mal die Formatierungen verwenden.

So, ich denke, es har sich erledigt. Nachdem ich angefangen habe, mich durch die "The Linux-PAM System Administrators' Guide" zu wälzen, mich geärgert habe, dass es pam_unix2.so [dort] nicht gibt... ...habe ich festgestellt, dass es man-Pages zu pam_unix.so und pam_unix2.so gibt; und siehe da: pam_unix2.so verwendet NIS als default, während es bei pam_unix.so eine Option nis gibt [die offensichtlich nicht default ist, und die auch nicht vom yast eingefügt wird, wenn man einen Rechner als NIS-Client konfiguriert].

Ich habe also in der Datei /etc/pam.d/common-passwd-pc die Zeile
Code:
password        required        pam_unix.so     debug use_authtok nullok shadow try_first_pass
durch
Code:
password        required        pam_unix.so     debug use_authtok nullok shadow nis try_first_pass
ersetzt. Das scheint zu funktionieren und mir halbwegs "sauber" zu sein.

Allerdings weiß ich nicht, welches Programm [wann?] mal ein
Code:
pam-config --create
ausführt [und ich vermute, dass meine Änderungen danach weg sind].
Wenn mir jemand dazu etwas sagen kann, wäre ich auch dankbar.
 

Rain_Maker

Administrator
Teammitglied
AW: 12.3 pam nis

bommel schrieb:
Der Grund könnte sein, dass openSuSe jetzt pam_unix.so statt pam_unix2.so verwendet [war einer 12.3 Ankündigung zu entnehmen; das kopierte pam.d verwendet noch pam_unix2.so]!?
Nur so nebenbei:

Code:
grep pam_unix /etc/pam.d/* 
/etc/pam.d/common-account:account	required	pam_unix2.so	
/etc/pam.d/common-account-pc:account	required	pam_unix2.so	
/etc/pam.d/common-auth:auth	required	pam_unix2.so	
/etc/pam.d/common-auth-pc:auth	required	pam_unix2.so	
/etc/pam.d/common-password:password	required	pam_unix2.so	use_authtok nullok 
/etc/pam.d/common-password-pc:password	required	pam_unix2.so	use_authtok nullok 
/etc/pam.d/common-session:session	required	pam_unix2.so	
/etc/pam.d/common-session-pc:session	required	pam_unix2.so

# cat /etc/os-release 
NAME=openSUSE
VERSION="12.3 (Dartmouth)"
VERSION_ID="12.3"
PRETTY_NAME="openSUSE 12.3 (Dartmouth) (i586)"
ID=opensuse
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:opensuse:12.3"
So sieht das bei mir auf allen 12.3er-Installationen aus, alle verwenden pam_unix2.so, sind allerdings auch alles Upgrades von älteren Versionen und keine Neuinstallation.

Das Modul "pam_unix2.so" ist auf allen Systemen logischerweise vorhanden und stammt aus dem Paket "pam-modules", händische Eingriffe meinerseits gab es keine, lief alles automatisch ab.

Nachtrag:

http://doc.opensuse.org/documentation/html/openSUSE/opensuse-security/

http://doc.opensuse.org/documentation/html/openSUSE/opensuse-security/cha.pam.html#dat.pam.common-account

Sofern diese Dokumentation, die explizit zu 12.3 gehören soll, nicht veraltet ist (nichts ist unmöglich), würde ich vermuten, daß pam_unix2.so immer noch der Default ist, denn pam_unix.so findet sich nirgends.

Greetz,

RM
 

bommel

New Member
AW: 12.3 pam nis

Erstmal danke für den Hinweis, das man sich/ich mir bei [weiteren] Updates diesen [s.o.] Ärger vermutlich sparen kann.

In der entsprechenden Ankündigung von
http://de.opensuse.org/Ank%C3%BCndigung
steht
Linux PAM Module wie pam_unix.so und pam_cracklib.so werden nun standardmäßig bei neuen Installationen verwendet, da sie nun Funktionen des von SUSE entwickelten pam_unix2.so und pam_pwcheck.so. anbieten.
Bei mir [zugegebenermaßen handelt es sich um eine Neuinstallation] sieht es eben als Default so aus:
Code:
grep pam_unix /etc/pam.d/*
/etc/pam.d/common-account:account       required        pam_unix.so     try_first_pass 
/etc/pam.d/common-account.pam-config-backup:account     required        pam_unix.so     try_first_pass
/etc/pam.d/common-account-pc:account    required        pam_unix.so     try_first_pass 
/etc/pam.d/common-auth:auth     required        pam_unix.so     try_first_pass 
/etc/pam.d/common-auth.pam-config-backup:auth   required        pam_unix.so     try_first_pass
/etc/pam.d/common-auth-pc:auth  required        pam_unix.so     try_first_pass 
/etc/pam.d/common-password:password     required        pam_unix.so     use_authtok nullok shadow try_first_pass 
/etc/pam.d/common-password.pam-config-backup:password        required        pam_unix.so     use_authtok nullok try_first_pas
/etc/pam.d/common-password-pc:password  required        pam_unix.so     use_authtok nullok shadow try_first_pass 
/etc/pam.d/common-session:session       required        pam_unix.so     try_first_pass 
/etc/pam.d/common-session.pam-config-backup:session     required        pam_unix.so     try_first_pass
/etc/pam.d/common-session-pc:session    required        pam_unix.so     try_first_pass

# cat /etc/os-release
NAME=openSUSE
VERSION="12.3 (Dartmouth)"
VERSION_ID="12.3"
PRETTY_NAME="openSUSE 12.3 (Dartmouth) (x86_64)"
ID=opensuse
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:opensuse:12.3"
und tatsächlich wird bspw. in /etc/pam.d/common-password auch pam_cracklib.so statt wie bei [meiner] 12.1 pam_pwcheck.so mit unter anderem der Option cracklib verwendet.
Den pam-Teil der angegebenen Dokus

hatte ich auch gelesen [insbesondere auch den Inhalt des letzten Links], was meine Laune auch nicht gerade gesteigert hatte: Offensichtlich hat sich doch etwas geändert, aber eben nicht die Doku :-|

Mein nächstes Problem war/ist: die Login-Shell vom NIS-Client aus ändern. Geht bei meiner openSuSE 12.3 Neuinstallation nicht. DAS hat aber wohl nichts mit pam zu tun, sondern damit, dass chsh bei mir laut manpage aus dem Paket shadow-utils 4.1.5.1 kommt (zypper-Name: shadow), mit
Code:
ll -h /usr/bin/chsh 
-rwsr-xr-x 1 root shadow 41K  5. Feb 15:58 /usr/bin/chsh
nur etwa halb so groß ist, wie chsh aus pwdutils bei openSuSE 12.1, und im Ggs. zu letzterer Version wohl eben einfach unfähig ist, ein Passwort über NIS zu ändern [Die manpage der 12.1er-Version listet die NIS-Fähigkeit auch explizit, die 12.3er nicht].

Da wäre es für mich interessant, ob bei dem Update von 12.1 zu 12.3 die alte, leistungsfähige Version bleibt, oder auch die neue nicht-nis-fähige Version vorliegt [Bedienungsfehler will ich nicht ausschließen],
oder, ob es eine einfache Alternative dafür mit 12.3 gibt.
 

Rain_Maker

Administrator
Teammitglied
AW: 12.3 pam nis

Ich habe mal ein wenig rumgespielt und bin zumindest auf die wahrscheinlich sauberste Methode gekommen, wie nis-Unterstützung in pam_unix eingebaut werden kann/sollte.

Ein

Code:
# pam-config --update --unix-nis
trägt das Ganze ohne händisches Rumbasteln an Dateien ein.

Der Befehl "pam-config --create" wird von pam-config nur dann ausgeführt, wenn es eine Erstinstallation des Paketes ist.

Code:
# rpm -q --scripts pam-config
postinstall scriptlet (using /bin/sh):
if [ ! -f /etc/pam.d/common-auth-pc ] ; then
  pam-config --debug --create --force
else
  pam-config --debug --update ||:
fi
Insofern sollte man nach obigem Einbinden eigentlich auf der sicheren Seite sein.

Die saubere Lösung für YaST&co. müsste IMHO so aussehen, daß der Befehl "pam-config --update --unix-nis" nach der Einrichtung von NIS ausgeführt werden muss, sollte das nicht der Fall sein, dann ist wohl ein Bugreport fällig.

Greetz,

RM
 

bommel

New Member
AW: 12.3 pam nis

Ein


Code:
# pam-config --update --unix-nis
trägt das Ganze ohne händisches Rumbasteln an Dateien ein.
Super! Danke! Genau soetwas habe ich gesucht. :)
Wird leider von yast bei/nach der Konfiguration eines NIS-Clients nicht ausgeführt.

..und danke: gut zu wissen, dass
Code:
pam-config --create
nur bei der Paketinstallation ausgeführt wird.

Fein. Schönes WoE!
 
Oben