Red Hat [Electronic resources] : The Complete Reference Enterprise Linux Fedora Edition؛ The Complete Reference نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Red Hat [Electronic resources] : The Complete Reference Enterprise Linux Fedora Edition؛ The Complete Reference - نسخه متنی

Richard L. Petersen

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










The Line Printer Server: LPRng



LPRng is an enhanced version of the Berkeley Line Printer Daemon (LPD) lpd and associated


lpr
applications. It features a wide range of capabilities that include security measures and access to remote printers. Many of the commands are the same as those used by LPD on a standard Unix system. The Linux printer server program is called lpd, the line printer daemon. Printers are installed to run under lpd, which then handles print jobs for them both locally and from remote sources. Though lpd is called the line printer daemon, it is designed to manage any kind of printer, not just line printers. You should think of it as a general-purpose print server capable of handling laser, inkjet, PostScript, and dot-matrix printers. LPRng also features a companion IFHP filter package, which provides hardware-level support for PostScript, PCL, and text printers, among others (see www.astart.com/lprngl).


The lpd daemon is installed and configured on your Linux system during installation. lpd is run as a standalone process by the lpd startup script in the /etc/rc.d/init.d directory. You can use the


service
command on this script to start, stop, and restart the daemon:


service lpd restart


The lpd daemon makes use of two configuration files: lpd.conf and lpd.perms. lpd.conf contains general lpd configuration commands. You use lpd.perms to set up rules with which you can restrict access to the lpd server. Here you can deny access by certain hosts, users, or even networks.


Requests to print documents are performed by print clients such as


lpr
. When a document is submitted for printing, it becomes a print job that is placed on a queue for the printer it was sent to. While the job is on the queue waiting to print, you can check its status and even remove it from the queue, canceling the job. The


lpq
client lets you check a print queue,


lpc
allows you to make changes to it, and


lprm
is used to remove a print job from a queue.



LPRng Print Clients



You can use any of several LPRng print clients to manage the printing jobs on your printer or printers, such as Klpq and several command line print clients like


lpr
and


lpq
. Klpq is a KDE desktop utility and is labeled the Print Job Administration tool. With Klpq, you can list the print jobs for a printer, remove a print job, and move a print job to the top of the queue. You can also disable printing for a printer. To have the print queue listing automatically updated, you can set an update frequency in the Options menu.



printcap File



The /etc/printcap file holds entries for each printer connected to your system. A


printcap
entry holds information, such as the pathname for a printer's spool directory and the device name of the printer port the printer uses. The first field in a


printcap
entry is a list of possible names for the printer. These are names you can make up yourself, and you can add others if you want. Each name is separated from the next by a


|
symbol. You use these names to identify the printer when you enter various printer commands or options, such as the


-P
option. These names are also used for special shell variables, such as the


PRINTER
variable, used in many initialization scripts.


The fields following the list of names set different fields for your printer. The fields are separated by colons and assigned a value using the


=
symbol. Three of the more important fields are


lp
,


sd
, and


of
. The


lp
field is set to the device name the printer uses. The


sd
field is set to the pathname of the spool directory, and


if
is set to the particular filter used for this printer. Some fields have Boolean values and simply list the field name with no assignment, which indicates a value of "true." You can find a complete listing of the


printcap
fields in the printcap Man pages:


man


printcap
. An example of a printcap entry follows:


myprinter|myepson::sh::ml=0::mx=

0::sd=/var/spool/lpd/myprinter::lp=/dev/lp0::lpd_bounce=true

::if=/usr/share/printconf/mf_wrapper:



To install a remote (network- or remote host–attached) printer, you place remote entries for the printer host and device in the printer's /etc/printcap file entry. An


:rm
entry identifies the remote host that controls the remote printer, and an


:rp
entry specifies the device name of the remote printer. In the following example, the remote printer is located at rabbit.mytrek.com and is called lp1:


:rm=rabbit.mytrek.com
:rp=lp1



Configuring lpd



LPRng allows you to configure your lpd server, setting global defaults or controlling printer access. There are only two configuration files to manage, and both are heavily commented. Your distribution will normally provide basic versions for both. An extensive set of features are available, letting you create servers with powerful and complex capabilities.


lpd.conf



The general configuration for LPRng, including the lpd print server, is handled in the /etc/lpd.conf file. Here you can specify features that apply to all printers and print management. You should think of these more as default features, as any of them can be overridden in a printer's


printcap
entry. The lpd.conf file installed with LPRng contains an extensive list of configuration parameters. They are all commented out, prefixed with


#
signs. Each parameter is preceded by a comment describing the parameter. The entry itself lists the default value given to the parameters, preceding the entry with the term


default
. The entry for the


connect_timeout
parameter is shown here:


# Purpose: connection timeout for remote printers
# default connect_timeout=10 (INTEGER)


To create your own timeout entry, it is best to add your own entry below, as shown here. Notice that the preceding


#
and the term


default
are missing from the new entry. The connection timeout for remote printers is now set at 20. This can be overridden by a printer's printcap file entry.


# Purpose: connection timeout for remote printers
# default connect_timeout=10 (INTEGER)
connect_timeout=20


Parameters can also be flags that you can turn on or off. An off flag is noted with an attached


@
sign. In the following example, the


allow_user_logging
parameter is a flag that allows users to request login information. By default, it is turned off. The following example turns it on:


# Purpose: allow users to request logging info using lpr -mhost%port
# default allow_user_logging@ (FLAG off)
allow_user_logging


LPRng Access Controls: lpd.perms



LPRng provides access control rules for controlling how remote users access your print server, and thereby the printers it controls. These rules are placed in the /etc/lpd.perms file and can be used to refuse print services to specific hosts or users. Such rules consist of an action and a set of keys. The keys specify criteria to be met, and if they met, their associated action is taken. In each rule, you have one action and one or more keys. If there are several keys, all their criteria must be met for the action to take place. An example of a key would be to specify the IP address of a host. In addition, you have to specify the kind of service that is being requested, such as a printing or connection request. The action is usually either


ACCEPT
or


REJECT
. Keys operate as flags or variables. To specify a host, you assign the address to the


HOST
key, using an assignment operator. For a user, you use


USER
, and for IP addresses,


IFIP
. The kind of service is specified by the


SERVICE
key. For a printing request, the value you assign is the


lpd
code


P
. The following example specifies a host as the key and will


REJECT
any request from that address:


REJECT SERVICE=P HOST=192.168.0.57


The lpd.perms file consists of a set of rules that are sequentially evaluated until a match is found. The


DEFAULT
action rule should be the last rule and is normally one to accept any requests. In other words, any request that is not matched by the preceding rules is accepted. Normally, you would set up rules to reject certain requests, such as requests for specific hosts. Most requests would not match these rules and should fall through to the


DEFAULT
action, which would


ACCEPT
them.



SERVICE
key values differ depending on the type of request submitted. These can range from a simple connection request by a remote server to a removal of a print job. The print clients such as


lpr
,


lpq
,


lprm
, and lpc make different kinds of service requests.


lpq
makes a request for queue information that has the key value


Q
for


SERVICE
. lprm issues a removal request indicated by a key value


M
.



LPRng Print Clients



LPRng uses the same command line print clients as described for CUPS. These include the lpr, lpc,


lpq
, and lprm commands. Check the Man pages for each for detailed options. Certain features, like encryption, are available only with CUPS versions.



/ 328