perplex why the following info is no longer in docs
Keven Knuth
kevenk at earthlink.net
Thu Aug 22 05:49:14 GMT 2002
Took me hours to figure out how to get printing to work from Windows 98 to
Redhat Linux 7.3. No
clue if the problem I had happens with other OSes. Basically I keep getting
a permissions problem
when a non-root user printed from the Windows box to the printer attached
to the linux box. The
below howto had my answer set path = /tmp.
My question is why is the following howto info not included with Samba any
longer, particularly the
troubleshooting part? I went thru the /usr/local/samba/docs/* many times
and never found this simple
solution. Maybe its there and I am just blind. /shrug
Keven
http://www.tldp.org/HOWTO/SMB-HOWTO-9.html
9. Sharing A Linux Printer With Windows Machines
To share a Linux printer with Windows machines, you need to make certain
that your printer is set up to work under Linux. If you can print from
Linux, setting up an SMB share of the printer is stright forward.
Note that Windows users must have an account on the Linux/Samba server in
order to print. Windows 95/98 will attempt to authenticate to the print
server using the username and password used on login to the Windows
box.This means that if you clicked 'Cancel' when logging onto Windows, you
can't print (or connect to other SMB services)! Windows NT allows one to
explicitely provide a username and password when connecting to a printer.
See the Printing HOWTO to set up local printing.
Add printing configuration to your smb.conf:
[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
log file = /var/log/samba-log.%m
lock directory = /var/lock/samba
[printers]
comment = All Printers
security = server
path = /var/spool/lpd/lp
browseable = no
printable = yes
public = yes
writable = no
create mode = 0700
[ljet]
security = server
path = /var/spool/lpd/lp
printer name = lp
writable = yes
public = yes
printable = yes
print command = lpr -r -h -P %p %s
Make certain that the printer path (in this case under [ljet]) matches the
spool directory in /etc/printcap!
The lines:
printcap name = /etc/printcap
load printers = yes
controls whether all the printers in /etc/printcap should be loaded by
default. If you do this, there is no reason to set up printers
individually. The section [printers] specifies options for the printers
that you wish to explicitly difine. If the printing subsystem you are using
doesn't work this way (BSD), you need to set up a fake printcap file (or to
use the 'print command' technique, see below). For more information on the
printcap system see the Printing HOWTO.
A useful technique to test the network connection is to change the print
command to:
print command = cp %S /tmp/print.%P.%S
The resulting file can then be analyzed.
NOTE: There are some problems sharing printers on UNIX boxes with Windows
NT machines using Samba. One problem is with NT seeing the shared printer
properly. To fix this, see the notes in the Samba distribution in the file
docs/WinNT.txt. The other deals with password problems. See the comments in
the same file for an annoying gain of understanding and failure to fix the
problem.
Oleg L. Machulskiy ( machulsk at shade.msu.ru) suggests that a better print
command to use in the above example would be:
print command = smb2ps %s | lpr -r -h -P %p
where 'smb2ps' is a script which transforms the spool file received from
Windows into usual a usable Postscript file. It must cut off first 3 lines
and last 2 lines, because these lines contain some PJL or PCL codes.
That approach is only needed if your Windows machine is printing PCL and
not real Postscript. I have found that Windows 95/98/NT don't have a
generic Postscript driver per se, but the "Digital turbo Printserver 20"
driver acts as a good general Postscript driver for most setups. I have
also heard that the "Apple LaserWriter II NTX" driver works for this purpose.
If you are creating a printer spool directory instead of using one created
by a Linux distribution's installation utility, be careful of permissions!
Neil Fraser ( neilf at necon.co.za) suggested setting the permissions of the
spool directory (in his case, /var/spool/lpd/lpr) to 4755 (note the suid
bit). This worked for him when the owner of the directory was 'root' and
the group was 'lp'.
Jeff Stern ( jstern at eclectic.ss.uci.edu) reported that he had to set the
permissions on his spool directory to 777 in order for non-priviledged
users to print, although he notes that he could have also added users to
the 'lp' group. This is a decision for local systems administrators; if
printing security is an issue, then lock it down. In home environments, you
will probably want everyone to be able to print.
Dr. Michael Langner ( langner at fiz-chemie.de) points out that write
permission problems on the /var/spool/lpd/ tree could be avoided by use
something like "path = /tmp" and "print command = lpr -r -P%p %s" instead.
Sometimes, a Postscript parsing error will occur with Postscript printing
from Windows machines that causes an extra page to be printed at the end of
every print job. The last page will always have "%%[ Lastpage ]%%" at the
top of it. This seems to happen with Windows 95 and 98 only and is because
the Postscript is malformed.
One way to handle that is to use a script to remove that bit of bad
Postscript from the spooled jobs. Another way is to try to find a better
Windows Postscript driver. Probably the best way is to us LPRng instead of
Postscript to print to a Samba server.
Erik Ratcliffe ( erik at caldera.com) Caldera tells me that using LPRng means
that any printer driver can be used from Windows machines. On the Samba
server, they used an /etc/printcap entry that looked like this:
raw:\
:rw:sh:
:lp=/dev/lp1
:sd=/var/spool/lpd/raw
:fx=flp
LPRng doesn't require :\ at the end of every line. A printer entry will
still need to be made in /etc/smb.conf for the physical printer. The print
command line needs to use the "raw" entry in /etc/printcap and data must be
sent to the printer in binary form. Try a print command line like this:
print command = lpr -b -Praw %s
You may also need to set the spooling on the Windows95 end to print
directly to the printer instead of spooling.
If you constantly get a extra page printing at the end of print jobs from
Windows clients, try adding an "sf" directive in /etc/printcap. This will
suppress form feeds separating jobs, but will not effect form feeds within
documents.
Next Previous Contents
-------------- next part --------------
HTML attachment scrubbed and removed
More information about the samba-docs
mailing list