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 might 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.
The Standard Unix user directory provider uses standard Unix APIApplication Programming Interface (API) is a set of routines, protocols, and tools for building software and applications. An API expresses a software component in terms of its operations, inputs, outputs, and underlying types, defining functionalities that are independent of their respective implementations, which allows definitions and implementations to vary without compromising the interface.'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, you can configure the system using nsswitch.conf to obtain user directory information from a centralized LDAPThe Lightweight Directory Access Protocol (LDAP) is a directory service protocol that runs on a layer above the TCP/IP stack. It provides a mechanism used to connect to, search, and modify Internet directories. The LDAP directory service is based on a client-server model. server or Novell's eDirectory.
User password authentication is performed via PAM. (Note: For administrators wanting to customize the PAM authentication method at the application level, PaperCut NG reports itself as "papercut".)
If the user and group information is provided by a Windows Domain such as an NT Style Domain or Active Directory, the SambaSamba is a Windows interoperability suite of programs for Linux and Unix. It is used to integrate Linux/Unix servers and desktops into Active Directory environments. It can function as both a domain controller or as a regular domain member. 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. The server needs Samba installed and configured, but does not need to be a member of the domain.
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.
The wrapper script is located in [app-path]/server/bin/[arch]/sambauserdir.
Some large networks, particularly those found at established universities, 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. For more information on the format, see Custom user directory information providers. The source code for the standard PaperCut NG supplied User Directory Information Provider is also supplied as part of the installation, and is a good example. The source code is provided in:
Organizations wanting to build a custom User Directory Information Provider are encouraged to contact the PaperCut NG development team. They are more than happy to assist.