Hallo,
ich hab hier ein ganz simples PAM Modul:
#define PAM_SM_AUTH
#include
PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags,
int argc, const char **argv) { return PAM_SUCCESS; }
PAM_EXTERN int pam_sm_setcred(pam_handle_t *pamh, int flags, int
argc, const char **argv) { return PAM_SUCCESS; }
PAM_EXTERN int pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, int
argc, const char **argv) { return PAM_SUCCESS; }
PAM_EXTERN int pam_sm_open_session(pam_handle_t *pamh, int flags,
int argc, const char **argv) { return PAM_SUCCESS; }
PAM_EXTERN int pam_sm_close_session(pam_handle_t *pamh, int flags,
int argc, const char **argv) { return PAM_SUCCESS; }
PAM_EXTERN int pam_sm_chauthtok(pam_handle_t *pamh, int flags, int
argc, const char **argv) { return PAM_SUCCESS; }
Das ganze compiliert und nach /lib/security/pam_test.so kopiert.
Dann in die /etc/pam.d/su eingefügt:
#%PAM-1.0
auth sufficient pam_rootok.so
auth sufficient pam_test.so
auth required pam_unix2.so nullok #set_secrpc
account required pam_unix2.so
password required pam_pwcheck.so nullok
password required pam_unix2.so nullok use_first_pass
use_authtok
#session required pam_homecheck.so
session required pam_unix2.so debug # none or trace
Ein anschließendes su auf einer Konsole ergibt:
thomas@takedown:[0:1:1008]~> su -
Dann passiert nichts mehr. Die Passwort Eingabe erscheint nicht
mehr. Man muss su mit Strg+C abbrechen. Mit debugs sieht man das
die Funktion pam_sm_authenticate aufgerufen wird. Und das wars
dann. Sieht einer wo ich den Fehler gemacht habe?
Thomas