This package contains two co-operating software which enable end-user to add and remove Active Directory print queues to CUPS (adlpadmin) and send print jobs to these printers (adsmb). In a successful setup the user can add/remove printers and print using Kerberos tickets just like Windows workstations do when part of a domain. The Linux workstation does not have to be a domain member.
The two components can be used without each other. You may add and remove
print queues from AD and use standard lpr backend (instead of adsmb
) to
print to Windows print servers via lpr. Or you can distribute your office
queues to all workstations using whatever means and use adsmb as CUPS
backend.
Adlpadmin has two Gtk2-based GUI scripts which allow user to select new print queue from AD (using simple authentication or valid Kerberos tickets, adlpadd) or local printers to delete (adlprem). These scripts are run under user privileges.
When the user adds or removes printers the adlp_add.su and adlp_rem.su are called. These scripts are run via sudo since they finally want to run CUPS command-line utility lpadmin with root privileges.
Adlpadmin tools read their configuration from Windows-style ini file that
can be located in /etc/adlpadmin.ini or /etc/adlpadmin/adlpadmin.ini. The
configuration file is documented in adlpadmin::config
, see section
SETTINGS AND VARIABLES (use command perldoc adlpadmin::config
).
Adlpadmin consists of four scripts (adlpadd
, adlprem
, adlp_add.su
and adlp_rem.su
), configuration file (adlpadmin.ini
) and two modules
(adlpadmin/config.pm
and adlpadmin/notifications.pm
).
Adsmb is a CUPS backend (man backend
) which handles CUPS printer URIs
adsmb://server/queue
. It takes the print job (file) from CUPS and
copies it to the Windows print queue using user's Kerberos credentials.
Adsmb is a single-file script that must be installed to
/usr/lib/cups/backend. It is documented using POD (perldoc adsmb
).
Adlpadmin depends on several CPAN packages:
Needed to create the GUI.
Read configuration, find (PPD) files, read compressed PPD files.
LDAP searches.
Kerberos authentication for LDAP connections. You also need Kerberos GSSAPI library (libgssapi-krb5).
For making CUPS print queue queries.
Adlpadmin requires sudo
in order to execute CUPS command-line utility lpadmin
as root.
Adsmb requires less packages:
Needed to create the GUI error window.
Create and copy temporary files.
Execute external program (smbclient
).
Adsmb requires Samba command-line tool smbclient
which is used to copy
print jobs to print server. The workstation does not have to be a member of a
Windows domain.
Adlpadmin installation:
1) Copy adlpadd
and adlprem
to somewhere in your users' path (e.g. /usr/local/bin)
and make them executable by users.
2) Copy adlp_add.su
and adlp_rem.su
to somewhere outside your users' path
(e.g. /usr/local/sbin). The files can be unreadable for normal users (e.g. owned
by root.root and access 0770).
3) Copy adlpadmin.ini
to /etc
and edit. The file must be read-only for all users.
4) Add following line to your /etc/sudoers
:
ALL ALL=(root)NOPASSWD:/usr/local/sbin/adlp_add.su,/usr/local/sbin/adlp_rem.su
The paths must be in align what you did on step 2. Here you grant all your users to run adlp_add.su and adlp_rem.su commands as root without asking their passwords.
Adsmb installation:
1) Copy adsmb
to /usr/lib/cups/backend
.
2) chown root.root /usr/lib/cups/backend/adsmb
3) chmod 0744 /usr/lib/cups/backend/adsmb
Matti Lattu, <matti.lattu@helsinki.fi>, University of Helsinki
Copyright (C) 2013 University of Helsinki
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
adlpadd
, adlprem
, adlp_add.su
, adlp_rem.su