System Administration Guide: Solaris Printing
Previous Next

Administering Printers by Using the Internet Printing Protocol (Task Map)

Table 6-1 Administering Printers by Using IPP: Task Map

Task

Description

For Instructions

Check printer status and obtain information about a printer when using IPP.

The lpset command is used to check printer status when IPP is in use.

How to Obtain Information About Printers When Using IPP

Move a remote print request when using IPP.

The lpmove command is used to move print jobs to a new destination when IPP is in use.

How to Move Remote Print Requests Between Print Queues on a Print Server When Using IPP

Modify a remote print request when using IPP.

The lp command is used to modify remote print requests when IPP is in use.

How to Move Remote Print Requests Between Print Queues on a Print Server When Using IPP

Share printers when using IPP.

To share printers when IPP is in use, you need to modify the default file configuration.

Sharing Printers When Using IPP

Turn on IPP authentication mechanisms.

In the Solaris Express release, client authentication is required to access some uri-path and operation combinations.

Turning On IPP Authentication Mechanisms

Set authorizations that enable you to accept print queues when using IPP.

The proper authentication information is required to enable an operation to be processed for the uri path.

How to Set Authorizations That Enable You to Accept Print Queues When Using IPP?

Add a user to the IPP AuthUser file.

Adding a user to the IPP AuthUser file requires modification of the httpd-standalone-ipp.conf file by using the htpasswd command:

How to Add a User to the IPP AuthUser File

How to Obtain Information About Printers When Using IPP

  1. Become superuser or assume an equivalent role.

    Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.

  2. To obtain information about a printer when IPP is in use, type the following command:
    # lpset -a printer-uri-supported=ipp://server/printers/test test
    # lpstat -p test -l
Example 6-1 Obtaining Information About Printers When IPP Is in Use
# lpset -a printer-uri-supported=ipp://server/printers/test test
# lpstat -p test -l
printer test disabled since Fri Nov 03 11:48:53 2006. available.
        new printer
        Form mounted:
        Content types: application/postscript
        Description:
        Connection:
        Interface: /usr/lib/lp/model/uri
        PPD: /usr/lib/lp/model/ppd/system/foomatic \
/HP/HP-Color_LaserJet_4600-Postscript.ppd.gz
        On fault: write root
        After fault: continue
        Users allowed:
                (all)
        Forms allowed:
                (none)
        Media supported:
                Letter
                A4
                11x17
                A3
                A5
                B5
                Env10
                EnvC5
                EnvDL
                EnvISOB5
                EnvMonarch
                Executive
                Legal
        Banner required
        Character sets:
                (none)
        Default pitch:
        Default page size:
        Default port setting:
        Options:

How to Move Remote Print Requests Between Print Queues on a Print Server When Using IPP

You can remotely move print jobs between print queues when IPP is in use by using the lpmove command. Print jobs can be moved to the new destination by request ID or by the destination.

  • To remotely move a print job between print queues when IPP is in use, type the following command:
    $ lpmove request-id | old-destination new-destination
Example 6-2 Remotely Moving Print Jobs by Request ID
$ lpmove request-id new-destination
Example 6-3 Remotely Moving Print Jobs by Destination
$ lpmove old-destination new-destination

How to Modify Remote Print Jobs When Using IPP

You can use the lp command to perform a variety of tasks when IPP is in use. For more information about using the lp command, see the lp(1) man page.

  • Use the lp command with the appropriate command options to modify remote print jobs.
    $ lp [-d] [-H] [-i] [-n] [-o]
    -d

    Specifies the destination for the print request.

    -H

    Specifies special-handling. Prints the request according to the value of the special-handling.

    -i

    Specifies the request ID.

    -n

    Specifies number of copies. Specify this option as a digit. The default for number is 1.

    -o

    Specifies printer dependent options.

Example 6-4 Submitting a Previously Held Print Job
$ lp -d destination -H hold /etc/motd
Example 6-5 Changing the Number of Copies Requested
$ lp -i request-id -n 5
Example 6-6 Turning on and Releasing the Duplex Feature
$ lp -i request-id -o Duplex=DuplexNoTumble -H resume

Sharing Printers When Using IPP

When you install the Solaris OS, the IPP listening service is automatically enabled on a print server when you add the first print queue. the listening service is also disabled when the last print queue has been removed. The default configuration in some releases of Solaris 9 and Solaris 10 is fairly permissive. If you have security concerns, you might want to modify the default configuration to make it more restrictive. The set of unauthenticated IPP operations that is supported by the service should be limited to operations that are the least destructive.

Operations include:

  • print-job

  • validate-job

  • create-job

  • get-jobs

  • get-printer-attributes

  • send-document

  • cancel-job

  • get-job-attributes

  • cups-get-default

  • cups-get-printers

  • cups-get-classes

  • cups-move-job

IPP Authentication Mechanisms

IPP is layered on top of HTTP. As a result, the protocol uses the authentication mechanisms that are built into HTTP and the Apache software. The default configuration that is shipped in the Solaris OS doesn't make use of these authentication mechanisms in some releases of Solaris 9, Solaris 10, as well as the Solaris Express release. In the Solaris Express release, client authentication is required to access some uri-path and operation combinations.

For example, the more common form of printer-uri that is used by client systems is:

ipp://server/printers/queue

When printing on a system that is running a version Windows, specify the URI by using the following syntax:

http://server:631/printers/queue

More information about printing in a heterogeneous environment can be found at http://opensolaris.org/os/community/printing/.

Turning On IPP Authentication Mechanisms

To authenticate, type:

$ accept ipp://server/admin/queue

You are prompted for authentication.

Enter the proper authentication information to enable the operation to be processed for the uri path.

For example:

system% accept ipp://printing/printers/wspe
accept: ipp://printing/printers/wspe: operation-not-supported
system% accept ipp://printing/admin/wspe
passphrase for user-name to access ipp://printing/admin/wspe:
accept: ipp://printing/admin/wspe: not-authorized
system%

Note - The following command will fail under the default configuration, because the operation is not enabled for that uri path

$ accept ipp://server/printers/queue

How to Set Authorizations That Enable You to Accept Print Queues When Using IPP?

To set authorizations for accepting print queues when IPP is in use, edit the /etc/apache/httpd-standalone-ipp.conf file.

Add the following entries to set up authentication:

  • AuthType

  • AuthName

  • AuthUserFile

For an example, see the /etc/apache/httpd-standalone-ipp.conf file.

If you are running at the least the Solaris Express 10/06 release, the /printers patch turns on the following operations:

  • print-job

  • validate-job

  • create-job

  • get-jobs

  • get-printer-attributes

  • send-document

  • cancel-job

  • get-job-attributes

  • cups-get-default

  • cups-get-printers

  • cups-get-classes

  • cups-move-job

How to Add a User to the IPP AuthUser File

  1. Become superuser or assume an equivalent role.

    Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.

  2. Update the /etc/apache/httpd-standalone-ipp.conf file by using the htpasswd command:
    # /usr/sfw/bin/htpasswd /etc/ipp-users user-name
  3. Verify the user was added, check the /etc/ipp-users file.
    # grep user-name /etc/ipp-users
Previous Next