BSD and AIX Cross−Printing Solaris and BSD Cross−Printing

total 2 −r−−r−−r−− 1 bin bin 107 Dec 2 1993 rcmodel cat usrspoollpcmodelrcmodel binsh Revision: 66.1 This model is for remote cancel operation. usrlibrcancel ls −l usrspoollpsmodel total 2 −r−−r−−r−− 1 bin bin 107 Dec 2 1993 rsmodel cat usrspoollpsmodelrsmodel binsh Revision: 66.1 This model is for remote status operation. usrlibrlpstat Both models are scripts and rely on special commands rcancel and rlpstat provided by HP−UX to deal with remote printers. If you execute the usual printing−related commands for remote printers: cancel −p remprinter print−requests or lpstat −p remprinter instead of the expected cancel and lpstat commands, the corresponding rcancel and rlpstat commands will be executed.

10.4 UNIX Cross−Platform Printer Spooling

We have discussed BSD and System V printing subsystems in great detail; however, besides the fact that they are very different from one another, they are also mutually noncompatible. Incompatibility can be a serious obstacle in providing the unique print service on a multiplatform environment. UNIX vendors treat this problem differently if they do at all; some UNIX flavors include both versions of printer spooling subsystems as standard parts of the UNIX distribution, while others provide specific filters, programs, commands, or utilities to bridge two subsystems. We will discuss a few cases.

10.4.1 BSD and AIX Cross−Printing

AIX supports BSD−like remote printing; the BSD−like daemon lpd is running on the system and monitoring port 515 for incoming remote print requests. In a sense, AIX supports the BSD printer spooling subsystem; the etchosts.lpd or etchosts.equiv files define trusted systems from which remote printing is allowed. However, this is not sufficient for successful cross−printing; incoming print jobs must be additionally filtered as appropriate. Special BSD filters exist for this purpose. ls −l usrliblpd total 5504 ..... 245 −r−xr−x−−− 1 root printq 2601 Jul 16 1994 aixlong −r−xr−x−−− 1 root printq 2797 Jul 16 1994 aixshort −r−xr−x−−− 1 root printq 3229 Jul 16 1994 aixv2long −r−xr−x−−− 1 root printq 3189 Jul 16 1994 aixv2short −r−xr−xr−x 1 bin bin 3394 Jul 16 1994 attlong −r−xr−xr−x 1 bin bin 2983 Jul 16 1994 attshort −r−xr−x−−− 1 root printq 4654 Jul 16 1994 bsdlong −r−xr−x−−− 1 root printq 3867 Jul 16 1994 bsdshort ..... ..... Different filtering methods should be applied when remote print requests are received from other AIX systems, from System V ATT systems, or from BSD systems. The corresponding administration is performed through the SMIT tool.

10.4.2 Solaris and BSD Cross−Printing

Solaris 2.x introduced the special lpsystem command to register remote systems with the print service; the command handles the master file for remote printing etclpSystems and defines requested parameters to control communication with remote systems parameters such as type, retry and timeout. The type parameter defines the remote system as one of two types: s5 System V−like, or Solaris−like, which is default, or bsd BSD−like. The format of the command is: lpsystem [−t type] [−T timeout] [−R retry] [−y comment] remote_system_name remote_system_name is the name of the remote system fromto which print jobs can be receivedsent. If it is a plus sign +, then anonymous client support is enabled. If the bsd type is defined, then cross−platform printing is selected. Other options of the lpsystem command enable the user to print out a description of the parameters associated with a specific system, to remove an entry associated with a system, and other miscellaneous functions. The remaining steps to enable remote printing are the same as in the case of single−platform spooling, which we have already discussed. Let us look at a practical example of remote printing setup. We want to provide remote printing on a default printer connected to the specific PC of course, this PC is a separate host on the network, and Windows−based BSD−like remote printer and spooler daemons are running on it. The first step is to execute the command: lpsystem −t bsd −R 1 levi levi has been added this was the system response The command defines BSD−like printing on the remote PC−host named levi. The new entry is automatically added into the etclpSystems file for a new remote host; although the file is an ASCII one, do not use editors to modify it. We will check the file it is well commented, so additional explanations are not needed: cat etclpSystems ident Systems 1.6 930319 SMI SVr4.0 1.2 246 Currently unused. Reserved for security version. Reserved Must be a − system−type s5|bsd The type of the remote system . s5: implies an SVR4.0 machine AND SVR4.0 lp network independent communication protocol. bsd: implies TCPIP network communication AND BSD lpd specific communication protocol. This is used ONLY if the remote system is connected to the local system via TCPIP AND it is a BSD OS. Reserved Must be a − timeout minutes n == never timeout 0 == do not wait for work 0 == wait for work Default: Never retry minutes n == do not retry if connection is dropped. 0 == retry immediately if connection is dropped. 0 == retry every N minutes until timeout. Default: 10 minutes Reserved Must be a − Reserved Must be a − Comment NOTE: Unused fields must contain a dash except for the password field which should contain an x and the comment field which can be blank. Example: Kepler:x:−:s5:−:n:10:−:−:SVR4.0 OS fubar:x:−:bsd:10:n:−:−:BSD OS Galileo:x:−:s5:−:30:10:−:−: If the first field i.e. the System Name contains a +, then all incoming connections will be established, regardless of whether or not theres an entry here for the remote system This will reduce your maintenance when you have a number of clients, and you dont really care about restricting your printer. Conceivably a print server could just contain a single entry of the following form for both BSD and SVR4 clients: ±:x:−:s5:−:n:10:−:−:Allow all connections 247 ± :x:−:s5:−:n:10:−:−:Allow all connections levi:x:−:bsd:−:n:1:−:−:Local printer on PC The first entry is the default one and it allows System V remote printing fromto all hosts in the network. Sometimes it is a good idea to move out this line with the command: lpsystem −r + Removed + this is the system response The second entry is our contribution; it defines BSD printing on the remote host levi. To list current remote printing possibilities: lpsystem −l System: + Type: s5 Connection timeout: never Retry failed connections: after 10 minutes Comment: allow all connections System: levi Type: bsd Connection timeout: never Retry failed connections: after 1 minutes Comment: local printer on PC The next step is to define the remote printer: the name of the printer for users and a real printers name on the remote system. lpadmin −p local −s levidefault The new printer is identified as local the name is arbitrary, but once defined users must use it to identify this specific printer. The remote printer name default is used here to denote the default PC printer in this case there is a single printer connected to the PC. Two more steps are required to enable the defined printer. The following two commands should be executed at the end of the process: accept local enable local Please note that starting with Solaris 2.6, the lpsystem command and the etclpSystems file are becoming obsolete.

10.4.3 Third−Party Printer Spooling Systems