User Directory and Authentication

PaperCut NG synchronizes its user directory with the underlying operating system or network. The Linux version of PaperCut NG ships with two user directory implementations. Due to the nature of Linux, some organizations may have customized user directory implementations. PaperCut NG can support customization in this area. This section details the user/group/authentication options available as standard, as well has how one would go about developing customized implementation.

Standard Unix

The Standard Unix user directory provider uses standard Unix API's to enumerate user and group information. This allows group information to be defined on either the local system or via another source as configured via nsswitch.conf. For example, the system may be configured via nsswitch.conf to obtain user directory information from a centralized LDAP server or Novell's eDirectory.

User password authentication is performed via PAM. (Note: For administrators wishing to customize the PAM authentication method at the application level, PaperCut NG reports itself as "papercut".)

Samba/Windows Domain

If the user and group information is provided by a Windows Domain such as an NT Style Domain or Active Directory, the Samba option is most appropriate. This option would normally be used on networks where the printers are hosted on a Linux server and exposed to Windows users via Samba.

At the technical level, the Samba support is implemented as a set of Perl script wrappers around standard Samba commands such as net and smbclient. Administrators should ensure these Samba commands are on the papercut user's path.

Custom

Some large networks, particularly those found at established universities, may have custom user directory and authentication services not directly supported by PaperCut NG. To support these networks, administrators can use scripting and other technologies to build a new custom User Directory Information Provider.

PaperCut NG works by handing off user, group and user authentication tasks to a separate program/process. The external process must accept a set of commands as command-line arguments and return the answer in a tab delimited prescribed format on standard out. More information on the format can be found in the section called “Custom User Directory Information Providers”. The source code for the standard PaperCut NG supplied User Directory Information Provider are also supplied as part of the installation, and these may prove to be a good example. The source code is provided in:

    ~/server/bin/linux-i686/src/
    ~/server/bin/linux-i686/sambauserdir
    ~/server/bin/linux-i686/authsamba
                

Organizations wishing to build a custom User Directory Information Provider are encouraged to contact the PaperCut NG development team. They will be more than happy to assist.