The program has officially started on May 26th, i was reading some documentation before starting i would like to start before, but i was working in a company.

My project will be for Debian and is called PamNssInstaller. Oh yeah great but.. What is it;
Well lets talk about files involved in this mess🙂
nsswitch.conf This file is in charge of how and where to look for the needed information, is divided in two columns, first “what information are we looking for” passwd, hosts, shadow, bootparams, ethers… And the second colums says how and where to look.

lets see an example of this file.

passwd: compat
group: compat
shadow: compat

hosts: files dns # fhere looks first in /etc/hosts, and if not found lookup DNS
networks: nis [NOTFOUND=return] files # if somethin doesn’t goes ok with nis look in files

This way we can see how to set up some kind of chains of looking up the required information.(man nsswitch.conf for more information)

pam.d/common-* Files

In pam.d directory we find some files, in a clean base installed system there are 4 conffiles common-passwd, common-auth, common-account and common-session. After installing other things such gdm, samba, sudo, they create their own config files to set up their applications, but we will work on common-* that its aim is global and required for the system and its functionalities.

In these files the information is about, how to interact with the different auth modules, and in which order or situations. See an example of a common-account file

account [success=1 default=ignore] pam_unix.so
account required pam_ldap.so
account required pam_permit.so

This is just an example of wht the README.debian of libpam-ldap say that you have to set up in your account file. The aim of the post is not to explain all about pam system. For further information you can look at pam documentation.

Due to the policy, these conffiles cannot be modified directly by the packages or their installation. The way to do this is to implement some tools which are capable to do it, and use them by maintainer scripts. So that is the goal of the project, implement that tools, suit them into the source deb packages pack them in libnss and libpam, and work on the package system to do it properly. In this way there are things to specify but the is the main Idea.

The common-account example i’ve shown is what libpam tell you to do by hand. In a future when our job is finished, the maintainer script will ask if the user wants to activate, and if it yes, the tools of update-pam will be used to do it. And when a libnss installed the update-nsswitch will be used.

Well this was a little explanation of what is what i have to do.

At the google summer of code, all applicants as me, have a mentor acting as a tutor on the project, who tells you what to do and what not. It also a partner of you to work with, and is the link between you and the organization, in my case is Debian. My mentor is Fabio Tranchitella also known as kobold. Is Italian and is one of the debian developer who is participating and sponsoring a quite big amount of packages (Overview), and also involved at the zope project.

I think his skills are great and i can learn a lot in this project mentored by him. Let me say thanks to him for mentoring me.