Toon posts:

[Linux] PAM en externe parameters

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig om aan een PAM-module ( een *.so) een externe parameter mee te geven maar de documentatie op Internet (RedHat, kernel.org etc) voorziet daar niet echt in. Gelden deze parameters als een methode in de *.so? Of heeft iemand er ervaring mee?

  • igmar
  • Registratie: April 2000
  • Laatst online: 20-04 22:06

igmar

ISO20022

Verwijderd schreef op 24 juni 2003 @ 16:02:
Ik ben bezig om aan een PAM-module ( een *.so) een externe parameter mee te geven maar de documentatie op Internet (RedHat, kernel.org etc) voorziet daar niet echt in. Gelden deze parameters als een methode in de *.so? Of heeft iemand er ervaring mee?
Dat hangt er vanaf wat je met 'externe parameters' precies bedoeld. Indien je de opties bedoeld die je in de pam.conf / of pam.d/* files zet : Die worden als argc / argv meegegeven aan de pam_sm_*() functies.

Indien je wat anders bedoeld zul je eerst wat meer duidelijkheid moeten verschaffen.

  • Wilke
  • Registratie: December 2000
  • Laatst online: 23:14
Ik kan er inderdaad ook geen touw aan vastknopen...een kernel module (.o) kun je parameters meegeven, maar je hebt het hier over Shared Object files (=libraries), die kun je helemaal niet starten laat staan (dus) parameters meegeven, tenzij via configfiles e.d., dus leg a.u.b. duidelijker uit wat je hiermee bedoelt :?

Verwijderd

Topicstarter
igmar schreef op 24 juni 2003 @ 16:07:
[...]


Dat hangt er vanaf wat je met 'externe parameters' precies bedoeld. Indien je de opties bedoeld die je in de pam.conf / of pam.d/* files zet : Die worden als argc / argv meegegeven aan de pam_sm_*() functies.

Indien je wat anders bedoeld zul je eerst wat meer duidelijkheid moeten verschaffen.
Het zit zo:

ik heb nu een module die iemands chipcard uitleest tijdens het inloggen (dus inloggen mbv chipcardreader). Deze is aangesloten op com1 (oftewel /dev/ttyS0). Het nummer van de bedoelde seriele poort is de parameter die ik wil meegeven. Een voorbeeld van hoe mijn /etc/pam.d/login er uit kan zien:

code:
1
 session     required /lib/security/pam_module.so   poort=0


zoiets dus. Iemand kan dus makkelijker de gebruikte seriele poort veranderen.

  • igmar
  • Registratie: April 2000
  • Laatst online: 20-04 22:06

igmar

ISO20022

Verwijderd schreef op 24 June 2003 @ 16:22:
ik heb nu een module die iemands chipcard uitleest tijdens het inloggen (dus inloggen mbv chipcardreader). Deze is aangesloten op com1 (oftewel /dev/ttyS0). Het nummer van de bedoelde seriele poort is de parameter die ik wil meegeven. Een voorbeeld van hoe mijn /etc/pam.d/login er uit kan zien:

code:
1
 session     required /lib/security/pam_module.so   poort=0


zoiets dus. Iemand kan dus makkelijker de gebruikte seriele poort veranderen.
Die worden dus als argc / argv meegegeven aan de pam_sm_*() functies :

code:
1
PAM_EXTERN int pam_sm_authenticate (pam_handle_t * pamh, int flags, int argc, const char ** argv);


En ja, da's zo ongeveer hetzelfde als de argc / argv van de main() functie. Hint : Gebruik de naam van de poort (ttyS0), en niet een nummer.

[ Voor 5% gewijzigd door igmar op 24-06-2003 17:20 ]


  • igmar
  • Registratie: April 2000
  • Laatst online: 20-04 22:06

igmar

ISO20022

Wilke schreef op 24 June 2003 @ 16:11:
maar je hebt het hier over Shared Object files (=libraries), die kun je helemaal niet starten
Effe wat OT verder :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[igmar@wrkst igmar]$ /lib/libc.so.6 
GNU C Library stable release version 2.2.4, by Roland McGrath et al.
Copyright (C) 1992-1999, 2000, 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 2.96 20000731 (Red Hat Linux 7.2 2.96-108.7.2).
Compiled on a Linux 2.4.9-34smp system on 2003-03-06.
Available extensions:
    GNU libio by Per Bothner
    crypt add-on version 2.1 by Michael Glad and others
    The C stubs add-on version 2.1.2.
    linuxthreads-0.9 by Xavier Leroy
    BIND-8.2.3-T5B
    NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
    Glibc-2.0 compatibility add-on by Cristian Gafton 
    libthread_db work sponsored by Alpha Processor Inc
Report bugs using the `glibcbug' script to <bugs@gnu.org>.


Ik kon het effe niet laten :)

Verwijderd

Topicstarter
igmar schreef op 24 juni 2003 @ 17:16:
[...]


Die worden dus als argc / argv meegegeven aan de pam_sm_*() functies :

code:
1
PAM_EXTERN int pam_sm_authenticate (pam_handle_t * pamh, int flags, int argc, const char ** argv);


En ja, da's zo ongeveer hetzelfde als de argc / argv van de main() functie. Hint : Gebruik de naam van de poort (ttyS0), en niet een nummer.
Dus de parameter achter de regel in /etc/pam.d/login zou kunnen zijn:

argv[1]=ttyS0

aangezien argv[0] een true statement is (en dus niet gevuld moet worden)?

  • igmar
  • Registratie: April 2000
  • Laatst online: 20-04 22:06

igmar

ISO20022

Verwijderd schreef op 26 June 2003 @ 19:42:

Dus de parameter achter de regel in /etc/pam.d/login zou kunnen zijn:

argv[1]=ttyS0

aangezien argv[0] een true statement is (en dus niet gevuld moet worden)?
True statement ? Da's wat nieuws. argv[] is hetgeen je in je applicatie krijgt. Zie verder gewoon de PAM docs, daar staat dit soort zaken allemaal in.

Verwijderd

Topicstarter
igmar schreef op 27 June 2003 @ 10:33


True statement ? Da's wat nieuws. argv[] is hetgeen je in je applicatie krijgt. Zie verder gewoon de PAM docs, daar staat dit soort zaken allemaal in.
Ik heb nu in de regel in /etc/pam.d/login over mijn module achteraan het argument gezet:

COMPORT=0
/* andere optie is COMPORT=ttyS0 */

en in de code staat in een *.c:

argv[1]=COMPORT

hiermee moet het dan wel lukken.

  • igmar
  • Registratie: April 2000
  • Laatst online: 20-04 22:06

igmar

ISO20022

Verwijderd schreef op 27 juni 2003 @ 11:20:
Ik heb nu in de regel in /etc/pam.d/login over mijn module achteraan het argument gezet:

COMPORT=0
/* andere optie is COMPORT=ttyS0 */

en in de code staat in een *.c:

argv[1]=COMPORT
hiermee moet het dan wel lukken.
Nu overschrijf je argv[1] met hetgeen wat in COMPORT staat. Lijkt me niet erg nuttig.
Pagina: 1