[562] in linux-security and linux-alert archive

home help back first fref pref prev next nref lref last post

PAM implementation effort....

daemon@ATHENA.MIT.EDU (Theodore Ts'o)
Fri Jan 12 15:59:46 1996

Date: Fri, 12 Jan 1996 00:13:39 -0500
From: "Theodore Ts'o" <tytso@MIT.EDU>
To: mvachhar@grimaldi.rutgers.edu, marc@redhat.com, ecarp@netcom.com
To: juphoff@tarsier.cv.nrao.edu, marekm@i17linuxb.ists.pwr.wroc.pl
To: hsdc1l@rhein-neckar.netsurf.de, alex@bach.cis.temple.edu, tytso@MIT.EDU
Cc: shadow-list@neptune.cin.net, linux-security@tarsier.cv.nrao.edu


OK, there definitely seems to be interest in implementing PAM for Linux.
Great!  Everyone on the To: field have either sent me mail directly
saying that they were interested, or have sent enough mail on the
various lists that they're obviously interested.

Because I'm not on shadow-list@neptune.cin.net, and because PAM really
is only somewhat tangentially related to the shadow package  ---- and
I've maintained enough mailing lists that I know that maintainers of
lists often get upset of a small subset of the people on the list
"hijack" a list for some different purpose, I've taken the liberty to
start a new mailing list:

	linux-pam@mit.edu

I've seeded the list with the people on the To: list above.  Other
people who are interested should send mail to me (tytso@mit.edu).  This
list will be active by tomorrow morning.  I suggest that for the reasons
I've listed above, we redirect discussion directly related to the PAM
implementation effort to this list.


Since I (foolishly?) volunteered to coordinate, and various other people
have said that they would write code if I would provide design specs ---
here goes.  I propose the following task breakdown:

1) Administrivia:  Ted
	Set up mailing list (done)
	Set up ftp space on tsx-11.mit.edu:/pub/linux/ALPHA/PAM (done)
	Coordinate tasks (see below; in progress)

2)  PAM header file:  Ted 
	(I'll do this, so people have a common place to start from.)
	Also, there isn't enough public information currently to
	completely specify the PAM <-> PAM module interface.  I'm going
	to try to pry the information out of Sun (which they'll need to
	give me, since they want me to write a PAM module for Kerberos).

	<security/pam_appl.h>      --- header for the application/PAM interface
	<security/pam_modules.h>   --- header for the PAM/PAM module interface

3)  Write PAM library:  (Need a volunteer)
	The PAM library is reponsible for parsing /etc/pam.conf, and
	then using dlopen() to dynamically call the various component
	libraries.   It's responsible for calling the various libraries
	in the right order, as specified by the rules in /etc/pam.conf
	(i.e., control flags "required", "sufficient", "optional", etc.)

4)  Write the PAM unix libraries: (Need volunteer(s))
     pam_unix_auth.so  ---- prompts for username/password and validates
				it against /etc/passwd
     pam_unix_account.so --- checks to see if user's user or account has
			expired.  (Account management is also the place
			to add login time restrictions, if desired.)
     pam_unix_session.so ---  empty for unix
     pam_unix_passwd.so  --- password changing interface

These can either be four separate libraries, or they can be one library:
pam_unix.so.  Eventually it probably makes sense to make it one library.
However, for ease of divvying up the task, we can implemently separately first.

5)  Write the PAM shadow libraries: (Need volunteer(s))
  
6)  Write the PAM S/Key interface: (Need volunteer(s))

7)  Write the PAM Kerberos interface: (Ted -- I told Sun I'd do this)

8)  Modify applications to use the PAM application interface: 	
				(Need volunteer(s))
	- login
	- ftpd
	- telnetd
	- rlogind
	- passwd


If there are people who are interested in participating in this effort,
please contact me and tell me what you're interested in doing.  I'll
coordinate to make sure we don't duplicate effort.

Again, people should take a look at OSF RFC 86.0.txt.  The URL is:

	http://www.pilgrim.umass.edu/pub/osf_dce/RFC/rfc86.0.txt

This actually has a fairly complete of the PAM <-> application
interface.

						- Ted



home help back first fref pref prev next nref lref last post