PAM NCP authentification module

Main documentation as per Rev 1.26 2002/05/24

Purpose:

  • The pam_ncp_auth module is designed for use in environments where users have already been given Netware accounts and the requirement to have two separate databases with logins and passwords would be a barrier to the deployment of Linux. When a user tries to login, this module seeks the NDS database using the standard NDS RSA based validation, via the ncpfs API. If a match is found, login to the Unix is granted and a local account is eventually "automagically" created and customized from NDS data.

  • The required Unix properties such as unique user id, primary group id, login shell and home directory are retrieved either from official NDS8 Unix:* attributes, or substitutes stored in the L attribute (Location) of user or group classes, or LINUX:* specific attributes added by manually extending the NDS schema.

  • This module is accompanied by a NWAdmin snapin that allow editing of Unix attributes ( either official or substitutes).

  • For those who don't know what is a PAM module, here is the "official definition" that can be found at the Linux Doc project:

    Pluggable Authentication Modules (PAM) is a flexible mechanism for authenticating users. Many Unix-like systems support PAM, including Solaris, nearly all Linux distributions (e.g., Red Hat Linux, Caldera, and Debian as of version 2.2), and FreeBSD as of version 3.1. By using PAM, your program can be independent of the authentication scheme (passwords, SmartCards, etc.). Basically, your program calls PAM, which at run-time determines which ``authentication modules'' are required by checking the configuration set by the local system administrator. If you're writing a program that requires authentication (e.g., entering a password), you should include support for PAM.

    More details at http://www.kernel.org/pub/linux/libs/pam/index.html.

    This version features:

    Why another pam_nds authentication module ?

    Currently there are at least two others PAM authentication modules against NDS available.

  • Novell is distributing its own module in the UAM package for eDirectory. It uses the new official UNIX:attributes for users and groups introduced in eDirectory. To download it, you must give a valid NDS Corporate Edition serial number, so it is not really free and has some limitations:

  • Caldera OpenLinux 2.x has another PAM module in the package nwclient+utils-ndsadmin.rpm with no source code. Unfortunately, the most interesting part, the script to synchronize Unix local accounts database (/etc/passwd, /etc/shadow and home directory) with NDS (nwauditusers) is mentionned in the documentation but not provided.

    These two packages are not distributed under GPL and no source code is available.

    NDS attributes supported:

    In Unix world, every user is characterized by some properties (stored in /etc/password) including an unique numeric ID (UID), a home directory, a primary group numeric ID (GID) a shell and an optionnal Gecos field (full name...). The most important informations, Unix ID and GID , are used for rights on the file system.

    NDS attributes are handy to centrally store these properties and make sure they are unique and always the same regardless of the workstation user is logging in. This is critical if user's home is not local to the Linux workstation but on some remote NFS servers. User's IDs must match those used on the NFS server where the home directory was created.

    Unix groups also must have to same IDs all over the workstations for rights consistency.

    Note that for testing purpose, you may simply let the pam_ncp module autocreate Unix IDS and GIDS by fetching "free values" from the local database. Your test user will not have the same IDs on several workstations and of course cannot have yet a NFS home. It is the default behaviour with no user's related command line arguments. But when deploying the full solution, you must consider using NDS as the repository of Unix properties.