[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
Re: Samba Connectivity
Thanks guys for helping me. Probably this is one of the Lists where people
help
the most and it is really encouraging to post a question here
Thanks once again
- Mahesh
mahesh@xxxxxxx
----- Original Message -----
From: Ravi Prakash B.V. <ravibv@xxxxxxxxxxxxxxxx>
To: Harpreet Singh (RBIN/DCA-NMP) <Harpreet.Singh@xxxxxxxxxxxx>; Linux India
Programmers <linux-india-programmers@xxxxxxxxxxxxxxxxxxxxx>
Sent: Friday, July 14, 2000 2:38 AM
Subject: Re: [LIP] Samba Connectivity
> hi
> u can see it in the attachment......
>
>
> "Harpreet Singh (RBIN/DCA-NMP)" wrote:
>
> > Regarding Samba Connectivity
> > I don't have the file...... Can someone please send it to me
> >
> > > -----Original Message-----
> > > From: Ravi Prakash B.V. [SMTP:ravibv@xxxxxxxxxxxxxxxx]
> > > Sent: Thursday, July 13, 2000 10:04 PM
> > > To: Mahesh; Linux India Programmers
> > > Subject: Re: [LIP] Samba Connectivity
> > >
> > > Hi Mahesh,
> > > There is a detailled description in the HOWTO, u can just go through
it.
> > > It
> > > includes the code to add while configuring.
> > > Default path: /usr/docs/HOWTO/SMB-HOWTO or u can get from net.
> > >
> > > Ravi
> > >
> > >
> > > Mahesh wrote:
> > >
> > > > Hi People,
> > > >
> > > > I am trying to run samba ( connect a Windows NT Workstation
machine
> > > to a
> > > > Linux server)
> > > > but I am not sure of the correct steps. Can somebody please guide me
> > > thro ?
> > > > Thanks
> > > > - Mahesh
> > > > mahesh@xxxxxxx
> > > >
> > >
> -----------------------------------------------------------------------
> > > > For information on this and other Linux India mailing lists check
out
> > > > http://lists.linux-india.org/
> > >
> > >
> >
> -----------------------------------------------------------------------
> > > For information on this and other Linux India mailing lists check out
> > > http://lists.linux-india.org/
> >
> > -----------------------------------------------------------------------
> > LIP is all for free speech. But it was created for a purpose - to help
> > people discuss technical programming related issues about Linux. If
> > your messages are counterproductive to this purpose, your privileges to
> > submit messages can and will be revoked.
>
----------------------------------------------------------------------------
----
> SMB HOWTO
> David Wood, dwood@xxxxxxxxxxxxxx
> v1.1.1, 25 June 1999
>
> This is the SMB HOWTO. This document describes how to use the Server
> Message Block (SMB) protocol, also called the Session Message Block,
> NetBIOS or LanManager protocol, with Linux.
> ______________________________________________________________________
>
> Table of Contents
>
> 1. Introduction
>
> 2. Further Information
>
> 3. Installation
>
> 4. Running The Daemons
>
> 5. General Configuration (/etc/smb.conf)
>
> 6. Sharing A Linux Drive With Windows Machines
>
> 7. Sharing A Windows Drive With Linux Machines
>
> 8. Sharing A Linux Printer With Windows Machines
>
> 9. Sharing A Windows Printer With Linux Machines
>
> 10. Backing Up Windows Machines to a Linux Host
>
> 11. Copyright
>
> 12. Acknowledgements
>
> ______________________________________________________________________
>
> 1. Introduction
>
> This is the SMB HOWTO. This document describes how to use the Server
> Message Block (SMB) protocol, also called the Session Message Block,
> NetBIOS or LanManager protocol, with Linux. Although this document is
> Linux-centric, Samba runs on most Unix-like operating systems.
>
> This document is maintained by David Wood (dwood@xxxxxxxxxxxxxx).
> Additions, modifications or corrections may be mailed there for
> inclusion in the next release.
>
> Much more Samba documentation is available at the Samba Web site,
> located at http://www.samba.org/ <http://www.samba.org/>. You also
> might try the comp.protocols.smb newsgroup.
>
> The SMB protocol is used by Microsoft Windows 3.11, NT and 95/98 to
> share disks and printers. Using the Samba suite of tools by Andrew
> Tridgell (Andrew.Tridgell@xxxxxxxxxx), UNIX (including Linux) machines
> can share disk and printers with Windows hosts. The smbfs tools by
> Paal-Kr. Engstad (engstad@xxxxxxxxxxxxxxxx) and Volker Lendecke
> (lendecke@xxxxxxxxxxxxxx) enable Unix machines to mount SMB shares
> from Windows or Samba hosts.
>
> There are four things that one can do with Samba:
>
> 1. Share a Linux drive with Windows machines.
>
> 2. Share a Windows drive with Linux machines.
>
> 3. Share a Linux printer with Windows machines.
>
> 4. Share a Windows printer with Linux machines.
>
> All of these are covered in this document.
>
> Disclaimer: The procedures and scripts either work for the author or
> have been reported to work by the people that provided them.
> Different configurations may not work with the information given here.
> If you encounter such a situation, you may e-mail the author with
> suggestions for improvement in this document, but the author
> guarantees nothing. What did you expect? The author is, after all, a
> consultant...
>
> Please note that for Windows 3.x machines to access SMB shares, they
> must have a TCP/IP stack and the Win32s DLLs. Both of these are
> available on Microsoft's Web site (http://www.microsoft.com
> <http://www.microsoft.com>).
>
> 2. Further Information
>
> This HOWTO attempts to explain how to configure basic SMB file and
> print services on a Linux machine. Samba is a very complex and
> complete package. There would be no point in attempting to duplicate
> all of the documentation for Samba here.
>
> For further information, please see the following documents:
>
> · The Samba documentation, available as part of the Samba
> distribution. The distribution is available at:
> ftp://ftp.samba.org/ <ftp://ftp.samba.org/>
>
> · The Linux Printing HOWTO.
>
> · The Print2Win Mini-HOWTO.
>
> · Protocol Standard For A NetBIOS Service On A TCP/UDP Transport.
>
> RFC 1001
> Concepts and Methods.
>
> RFC 1002
> Detailed Specifications.
>
> 3. Installation
>
> First, in order to use Samba your machines must be on a single
> ethernet LAN segment using the TCP/IP protocol. Samba will not work
> using other network protocols. This is generally easy since Linux and
> Windows 95/98/NT ship with TCP/IP support. However, if you are using
> Windows 3.X machines TCP/IP support will need to be added.
>
> SMB services cannot be used across routers. If you want to do
> something like that, you would need to set up an IP tunnel which is
> beyond the scope of this document.
>
> To get the latest source version of Samba, go to this URL and pick the
> closest mirror site to you: ftp://ftp.samba.org/
> <ftp://ftp.samba.org/>.
> However, if you have installed the RedHat distribution of Linux, you
> have the option of installing it as a package. Some other
> distributions also include the Samba binaries.
>
> The following two daemons are required for the Samba package. They
> are typically installed in /usr/sbin and run either on boot from the
> systems startup scripts or from inetd. Example scripts are shown in
> ``Running the Daemons''.
>
> ______________________________________________________________________
> smbd (The SMB daemon)
> nmbd (Provides NetBIOS nameserver support to clients)
> ______________________________________________________________________
>
> Please note that the name service provided by the nmbd daemon is
> different from the name service provided by the Domain Name Service
> (DNS). NetBIOS name service is a 'Windows-style' name service used
> for SMB. In other words, having DNS name service tells you nothing
> about the state of the ability for Samba to resolve host names.
>
> Typically, the following Samba binaries are installed in /usr/bin or
> /usr/local/samba/bin, although the location is optional.
>
> ______________________________________________________________________
> smbclient (An SMB client for UNIX machines)
> smbprint (A script to print to a printer on an SMB host)
> smbprint.sysv (As above, but for SVR4 UNIX machines)
> smbstatus (Lists the cuurent SMB connections for the local
host)
> smbrun (A 'glue' script to facilitate runnning
applciations
> on SMB hosts)
> ______________________________________________________________________
>
> The binaries for smbfs file system support are discussed later in this
> document.
>
> Additionally, a script called 'print' is included with this HOWTO,
> which serves as a useful front end to the smbprint script.
>
> The Samba package is simple to install. Simply retrieve the source
> from the location mentioned above, and read the file README in the
> distribution. There is also a file called docs/INSTALL.txt in the
> distribution that provides a simple step-by-step set of instructions.
>
> Following installation, place the daemons in /usr/sbin and the
> binaries in /usr/bin. Install the man pages in /usr/local/man.
>
> When you made the Samba package, you would have specified in the
> Makefile the location for the configuration file, smb.conf. This is
> generally in /etc, but you can put it anywhere you like. For these
> directions, we will presume that you specified the location of the
> configuration file as /etc/smb.conf, the log file location as log file
> = /var/log/samba-log.%m and the lock directory as lock directory =
> /var/lock/samba.
>
> Install the configuration file, smb.conf. Go to the directory where
> Samba was built. Look in the subdirectory examples/simple and read
> the file README. Copy the file smb.conf found in that directory to
> /etc. BE CAREFUL! If you have a Linux distribution that already has
> Samba installed, you may already have a Samba configuration file in
> /etc. You should probably start with that one.
> If you don't want to have your configuration file in /etc, put it
> wherever you want to, then put a symlink in /etc:
>
> ______________________________________________________________________
> ln -s /path/to/smb.conf /etc/smb.conf
> ______________________________________________________________________
>
> 4. Running The Daemons
>
> The two SMB daemons are /usr/sbin/smbd and /usr/sbin/nmbd.
>
> You can run the Samba daemons from inetd or as stand-alone processes.
> Samba will respond slightly faster as a standalone daemon than running
> from inetd.
>
> In either case, you should check the file /etc/services for lines that
> look like this:
>
>
______________________________________________________________________
> netbios-ns 137/tcp nbns
> netbios-ns 137/udp nbns
> netbios-dgm 138/tcp nbdgm
> netbios-dgm 138/udp nbdgm
> netbios-ssn 139/tcp nbssn
>
______________________________________________________________________
>
> Make sure they are all uncommented. Depending on your distribution,
> you may even need to add them. Samba will not be able to bind to the
> appropriate ports unless /etc/services has these entries.
>
> To run the daemons from inetd, place the following lines in the inetd
> configuration file, /etc/inetd.conf:
>
>
______________________________________________________________________
> # SAMBA NetBIOS services (for PC file and print sharing)
> netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd
> netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd
>
______________________________________________________________________
>
> Then restart the inetd daemon by running the command:
>
> ______________________________________________________________________
> kill -HUP `cat /var/run/inetd.pid`
> ______________________________________________________________________
>
> To run the daemons from the system startup scripts, put the following
> script in file called /etc/rc.d/init.d/smb (for a RedHat distribution)
> and symbolically link it to the files specified in the comments:
>
>
______________________________________________________________________
> #!/bin/sh
>
> #
> # /etc/rc.d/init.d/smb - starts and stops SMB services.
> #
> # The following files should be synbolic links to this file:
> # symlinks: /etc/rc.d/rc1.d/K35smb (Kills SMB services on
shutdown)
> # /etc/rc.d/rc3.d/S91smb (Starts SMB services in
multiuser mode)
> # /etc/rc.d/rc6.d/K35smb (Kills SMB services on
reboot)
> #
>
> # Source function library.
> . /etc/rc.d/init.d/functions
>
> # Source networking configuration.
> . /etc/sysconfig/network
>
> # Check that networking is up.
> [ ${NETWORKING} = "no" ] && exit 0
>
> # See how we were called.
> case "$1" in
> start)
> echo -n "Starting SMB services: "
> daemon smbd -D
> daemon nmbd -D
> echo
> touch /var/lock/subsys/smb
> ;;
> stop)
> echo -n "Shutting down SMB services: "
> killproc smbd
> killproc nmbd
> rm -f /var/lock/subsys/smb
> echo ""
> ;;
> *)
> echo "Usage: smb {start|stop}"
> exit 1
> esac
>
______________________________________________________________________
>
> If when starting Samba you get an error that says something about the
> daemon failing to bind to port 139, then you probably have another
> Samba process already running that hasn't yet shut down. Check a
> process list (with 'ps auxww | grep mbd') to determine if another
> Samba service is running.
>
> 5. General Configuration (/etc/smb.conf)
>
> Samba configuration on a Linux (or other UNIX machine) is controlled
> by a single file, /etc/smb.conf. This file determines which system
> resources you want to share with the outside world and what
> restrictions you wish to place on them.
>
> Since the following sections will address sharing Linux drives and
> printers with Windows machines, the smb.conf file shown in this
> section is as simple as you can get, just for introductory purposes.
>
> Don't worry about the details, yet. Later sections will introduce the
> major concepts.
>
> Each section of the file starts with a section header such as
> [global], [homes], [printers], etc.
>
> The [global] section defines a few variables that Samba will use to
> define sharing for all resources.
>
> The [homes] section allows a remote users to access their (and only
> their) home directory on the local (Linux) machine). That is, users
> trying to connect to this share from Windows machines, will be
> connected to their personal home directories. Note that to do this,
> they must have an account on the Linux box.
>
> The sample smb.conf file below allows remote users to get to their
> home directories on the local machine and to write to a temporary
> directory. For a Windows user to see these shares, the Linux box has
> to be on the local network. Then the user simply connects a network
> drive from the Windows File Manager or Windows Explorer.
>
> Note that in the following sections, additional entries for this file
> will be given to allow more resources to be shared.
>
>
______________________________________________________________________
> ; /etc/smb.conf
> ;
> ; Make sure and restart the server after making changes to this
file, ex:
> ; /etc/rc.d/init.d/smb stop
> ; /etc/rc.d/init.d/smb start
>
> [global]
> ; Uncomment this if you want a guest account
> ; guest account = nobody
> log file = /var/log/samba-log.%m
> lock directory = /var/lock/samba
> share modes = yes
>
> [homes]
> comment = Home Directories
> browseable = no
> read only = no
> create mode = 0750
>
> [tmp]
> comment = Temporary file space
> path = /tmp
> read only = no
> public = yes
>
______________________________________________________________________
>
> Having written a new smb.conf, it is useful to test it to verify its
> correctness. You can test the correctness of a smb.conf file , using
> the 'testparm' utility (man page: testparm); if testparm reports no
> problems, smbd will correctly load the configuration file.
>
> Here's a good trick: If your Samba server has more than one ethernet
> interface, the smbd may bind to the wrong one. If so, you can force
> it to bind to the intended one by adding a line that looks like this
> to the [global] section of /etc/smb.conf:
>
>
______________________________________________________________________
> interfaces = 192.168.1.1/24
>
______________________________________________________________________
>
> where you replace the IP address above with the one that is assigned
> to the correct ethernet interface. The "24" is correct for a Class C
> network, but may have to be recalculated if you have subnetted the
> network. The number relates to the netmask. Numbers for other
> classes of networks are given in the IP-Masquerade mini-HOWTO.
>
> There is now a GUI configuration tool for Samba: GtkSamba. See
> http://www.open-systems.com/gtksamba.html <http://www.open-
> systems.com/gtksamba.html>.
>
> 6. Sharing A Linux Drive With Windows Machines
>
> As shown in the simple smb.conf above, sharing Linux drives with
> Windows users is easy. However, like everything else with Samba, you
> can control things to a large degree. Here are some examples:
>
> To share a directory with the public, create a clone of the [tmp]
> section above by adding something like this to smb.conf:
>
>
______________________________________________________________________
> [public]
> comment = Public Stuff
> path = /home/public
> public = yes
> writable = yes
> printable = no
>
______________________________________________________________________
>
> To make the above directory readable by the public, but only writable
> by people in group staff, modify the entry like this:
>
>
______________________________________________________________________
> [public]
> comment = Public Stuff
> path = /home/public
> public = yes
> writable = yes
> printable = no
> write list = @staff
>
______________________________________________________________________
>
> It used to be that easy; you would now be able to start Samba and
> browse the shares from a Windows PC. However, Microsoft has recently
> made life slightly more difficult for those using Samba. Windows 98,
> Windows NT (service pack 3 or higher) and later builds of Windows 95
> now use encrypted passwords by default. Samba uses unencrypted
> passwords by default. You can't browse servers when either the client
> or server is using encrypted passwords, because a connection cannot be
> made anonymously.
>
> You can tell if you have a password type mismatch between client and
> server if when you try to connect to a share you see a dialog box
> which reads something like "You are not authorized to access that
> account from this machine".
>
> You can either configure your Samba server to use encrypted passwords,
> or configure the Windows machines to use unencrypted passwords.
>
> To get Windows to work with encrypted SMB passwords:
>
> Windows 95/98 =============
>
> Using the registry editor (regedit), create the registry setting
> HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP Add a
> new DWORD value: Value Name: EnablePlainTextPassword Data:
> 0x01.
>
> Windows NT ==========
>
> Using the registry editor (regedit), create the registry setting
> HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rdr\Parameters
> Add a new DWORD value: Value Name: EnablePlainTextPassword Data:
> 0x01
>
> Once these registry changes have been made, reboot the Windows machine
> and try to map a network drive on the Samba server again. It should
> work as long as the Samba server is using plain text passwords.
>
> To configure Samba to use encrypted passwords:
>
> In the [global] section of /etc/smb.conf, add the following lines:
>
>
______________________________________________________________________
> encrypt passwords = yes
> smb passwd file = /etc/smbpasswd
>
______________________________________________________________________
>
> You are highly encouraged to read the files ENCRYPTION.txt, Win95.txt
> and WinNT.txt in the Samba documentation before doing this!
>
> If your clients and server are using encrypted passwords, you will not
> be able to browse the available shares on the server until an initial
> connection has been made with the appropriate authentication. To get
> the initial connection, enter the share name manually in the Windows
> File Manager or Explorer dialog box, in the form
> '\\<hostname>\<sharename>'. Log onto the server with a username and
> password that is valid on the server!
>
> If you suspect that your NetBIOS name service is not correctly
> configured (perhaps because you get 'host not found' errors when
> trying to connect), try using just the IP address of the server:
> '\\<host ip address>\<sharename>'.
>
> In order to get filenames to appear correctly, you may also need to
> set some options in the appropriate share section. These work for
> Windows 95/98/NT clients, but may need to be modified if you have
> Windows 3.X clients:
>
>
______________________________________________________________________
> ; Mangle case = yes seems to give the correct filenames
> ; for Win95/98/NT.
> mangle case = yes
>
> ; If samba is case sensitive when looking for files
> case sensitive = no
>
> ; Default case of files that are created
> default case = lower
>
> ; Preserve case for all filenames
> preserve case = yes
>
> ; Preserve case for dos (8.3) filenames
> short preserve case = no
>
______________________________________________________________________
>
> For other tricks to play with drive shares, see the Samba
> documentation or man pages.
>
>
______________________________________________________________________
> interfaces = 192.168.1.1/24
>
______________________________________________________________________
>
> Note: The bit after the / is a reference to the subnet mask. "24" is
> the value to use for an unsegmented Class C network. For more
> information on subnet calculations, you might want to see
> http://www.ziplink.net/~ralphb/IPSubnet/index.html
> <http://www.ziplink.net/~ralphb/IPSubnet/index.html>.
>
> There is a lot more to Samba configuration than this, but this will
> get you started. If you want to do something more advanced, I refer
> you to the Samba Web site mentioned above.
>
> 7. Sharing A Windows Drive With Linux Machines
>
> An SMB client program for UNIX machines is included with the Samba
> distribution. It provides an ftp-like interface on the command line.
> You can use this utility to transfer files between a Windows 'server'
> and a Linux client.
>
> To see which shares are available on a given host, run:
>
> ______________________________________________________________________
> /usr/sbin/smbclient -L host
> ______________________________________________________________________
>
> where 'host' is the name of the machine that you wish to view. this
> will return a list of 'service' names - that is, names of drives or
> printers that it can share with you. Unless the SMB server has no
> security configured, it will ask you for a password. Get it the
> password for the 'guest' account or for your personal account on that
> machine.
>
> For example:
>
> ______________________________________________________________________
> smbclient -L zimmerman
> ______________________________________________________________________
>
> The output of this command should look something like this:
>
>
______________________________________________________________________
> Server time is Sat Aug 10 15:58:27 1996
> Timezone is UTC+10.0
> Password:
> Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager
3.51]
>
> Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[]
>
> Sharename Type Comment
> --------- ---- -------
> ADMIN$ Disk Remote Admin
> public Disk Public
> C$ Disk Default share
> IPC$ IPC Remote IPC
> OReilly Printer OReilly
> print$ Disk Printer Drivers
>
> This machine has a browse list:
>
> Server Comment
> --------- -------
> HOPPER Samba 1.9.15p8
> KERNIGAN Samba 1.9.15p8
> LOVELACE Samba 1.9.15p8
> RITCHIE Samba 1.9.15p8
> ZIMMERMAN
>
______________________________________________________________________
>
> The browse list shows other SMB servers with resources to share on the
> network.
>
> To use the client, run:
>
> ______________________________________________________________________
> /usr/sbin/smbclient service <password>
> ______________________________________________________________________
>
> where 'service' is a machine and share name. For example, if you are
> trying to reach a directory that has been shared as 'public' on a
> machine called zimmerman, the service would be called
> \\zimmerman\public. However, due to shell restrictions, you will need
> to escape the backslashes, so you end up with something like this:
>
> ______________________________________________________________________
> /usr/sbin/smbclient \\\\zimmerman\\public mypasswd
> ______________________________________________________________________
>
> where 'mypasswd' is the literal string of your password.
>
> You will get the smbclient prompt:
>
>
______________________________________________________________________
> Server time is Sat Aug 10 15:58:44 1996
> Timezone is UTC+10.0
> Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager
3.51]
> smb: \>
>
______________________________________________________________________
>
> Type 'h' to get help using smbclient:
>
>
______________________________________________________________________
> smb: \> h
> ls dir lcd cd pwd
> get mget put mput rename
> more mask del rm mkdir
> md rmdir rd prompt recurse
> translate lowercase print printmode queue
> cancel stat quit q exit
> newer archive tar blocksize tarmode
> setmode help ? !
> smb: \>
>
______________________________________________________________________
>
> If you can use ftp, you shouldn't need the man pages for smbclient.
>
> Although you can use smbclient for testing, you will soon tire of it
> for real work. For that you will probably want to use the smbfs
> package. Smbfs comes with two simple utilties, smbmount and
> smbumount. They work just like mount and umount for SMB shares.
>
> The smbfs package is now included in most Linux distributions. One
> important thing to note: You must have smbfs support compiled into
> your kernel to use these utilities!
>
> 8. 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.
>
> See the Printing HOWTO to set up local printing.
>
> Since the author used a printer connected to a Windows NT machine (a
> long time ago - before converting our network nearly totally to
> Linux), this section should not be taken as definitive, but merely a
> suggestion. Anyone with details to share, please send them to
> dwood@xxxxxxxxxxxxxx so this section can be completed.
>
> 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@xxxxxxxxxxxx) 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.
>
> Jeff Stern (jstern@xxxxxxxxxxxxxxxxxxx) reported the following that
> may be of help to some of you:
>
> --------------------------%<---------------------------------- Problem
> I was having was that I could print via lpd/lpr to my Linux printer,
> from the Linux box itself. But I couldn't get it to print from a
> remote Win95 machine. When I tried
>
> smbclient \\eclectic\belen -P
>
> and then tried to
>
> print myfile
>
> I got errors about access denied. SO I reset the permissions on my
> /var/spool/lpd/lp1 directory to 777. I'm sorry, but that's what I had
> to do. I suppose alternatively I could have message with putting
> everyone on the Linux box in the 'lp' group, or made the directory be
> owned by the group 'users', etc.. But for now, this works (with
> ownership root:lp).
>
> Finally, the other thing administrators should know is that the name
> of the account on the WIndows machine (which is trying to use the
> Linux printer via Samba) should have an equivalently-named account on
> the Linux box. Thus, if there is a user named 'joe' on the Windows
> machine, (\\eclectic\belen) then there should be a user named 'joe' on
> the Linux box. Then 'joe's login password will be the password to
> access eclectic's belen printer. This password will be asked for on
> the Windows machine when setting up the printer on the Windows box
> with Printers|Add Printer.
>
> I kind of thought maybe this wouldn't be the case, since I have set up
> my printer to be 'public' in the smb.conf. But apparently it still
> asks for password. (The windows box unfortunately doesn't give you the
> opportunity to supply a different user name to the remote (Linux)
> printer. It just uses your local user name which you signed in as when
> you started up Win95.
> --------------------------%<----------------------------------
>
> Dr. Michael Langner (langner@xxxxxxxxxxxxx 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@xxxxxxxxxxx) 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.
>
> 9. Sharing A Windows Printer With Linux Machines
>
> To share a printer on a Windows machine, you must do the following:
>
> 1. You must have the proper entries in /etc/printcap and they must
> correspond to the local directory structure (for the spool
> directory, etc).
>
> 2. You must have the script /usr/bin/smbprint. This comes with the
> Samba source, but not with all Samba binary distributions. A
> slightly modifed copy is discussed below.
>
> 3. If you want to convert ASCII files to Postscript, you must have
> nenscript, or its equivalent. nenscript is a Postscript converter
> and is generally installed in /usr/bin.
>
> 4. You may wish to make Samba printing easier by having an easy-to-use
> front end. A simple perl script to handle ASCII, Postscript or
> created Postscript is given below.
>
> 5. You could also use MagicFilter to do the above. The details on
> setting up MagicFilter are given below the perl script.
> MagicFilter has advantages because it knows how to automatically
> convert a lot of file formats.
>
> 6.
>
> a. The /etc/printcap entry below is for an HP 5MP printer on a
> Windows NT host. The entries are as follows:
>
> ________________________________________________________________
> cm - comment
> lp - device name to open for output
> sd - the printer's spool directory (on the local machine)
> af - the accounting file
> mx - the maximum file size (zero is unlimited)
> if - name of the input filter (script)
> ________________________________________________________________
>
> For more information, see the Printing HOWTO or the man page for
> printcap.
>
>
___________________________________________________________________
> # /etc/printcap
> #
> # file://zimmerman/oreilly via smbprint
> #
> lp:\
> :cm=HP 5MP Postscript OReilly on zimmerman:\
> :lp=/dev/lp1:\
> :sd=/var/spool/lpd/lp:\
> :af=/var/spool/lpd/lp/acct:\
> :mx#0:\
> :if=/usr/bin/smbprint:
>
___________________________________________________________________
>
> Make certain that the spool and accounting directories exist and
> are writable. Ensure that the 'if' line holds the proper path to
> the smbprint script (given below) and make sure that the proper
> device is pointed to (the /dev special file).
>
> Next is the smbprint script itself. It is usually placed in
> /usr/bin and is attributable to Andrew Tridgell, the person who
> created Samba as far as I know. It comes with the Samba source
> distribution, but is absent from some binary distributions, so I
> have recreated it here.
>
> You may wish to look at this carefully. There are some minor
> alterations that have shown themselves to be useful.
>
> ___________________________________________________________________
> #!/bin/sh -x
>
> # This script is an input filter for printcap printing on a unix
machine. It
> # uses the smbclient program to print the file to the specified
smb-based
> # server and service.
> # For example you could have a printcap entry like this
> #
> # smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint
> #
> # which would create a unix printer called "smb" that will print via
this
> # script. You will need to create the spool directory /usr/spool/smb
with
> # appropriate permissions and ownerships for your system.
>
> # Set these to the server and service you wish to print to
> # In this example I have a WfWg PC called "lapland" that has a
printer
> # exported called "printer" with no password.
>
> #
> # Script further altered by hamiltom@xxxxxxxxxx (Michael Hamilton)
> # so that the server, service, and password can be read from
> # a /usr/var/spool/lpd/PRINTNAME/.config file.
> #
> # In order for this to work the /etc/printcap entry must include an
> # accounting file (af=...):
> #
> # cdcolour:\
> # :cm=CD IBM Colorjet on 6th:\
> # :sd=/var/spool/lpd/cdcolour:\
> # :af=/var/spool/lpd/cdcolour/acct:\
> # :if=/usr/local/etc/smbprint:\
> # :mx=0:\
> # :lp=/dev/null:
> #
> # The /usr/var/spool/lpd/PRINTNAME/.config file should contain:
> # server=PC_SERVER
> # service=PR_SHARENAME
> # password="password"
> #
> # E.g.
> # server=PAULS_PC
> # service=CJET_371
> # password=""
>
> #
> # Debugging log file, change to /dev/null if you like.
> #
> logfile=/tmp/smb-print.log
> # logfile=/dev/null
>
> #
> # The last parameter to the filter is the accounting file name.
> #
> spool_dir=/var/spool/lpd/lp
> config_file=$spool_dir/.config
>
> # Should read the following variables set in the config file:
> # server
> # service
> # password
> # user
> eval `cat $config_file`
>
> #
> # Some debugging help, change the >> to > if you want to same space.
> #
> echo "server $server, service $service" >> $logfile
>
> (
> # NOTE You may wish to add the line `echo translate' if you want
automatic
> # CR/LF translation when printing.
> echo translate
> echo "print -"
> cat
> ) | /usr/bin/smbclient "\\\\$server\\$service" $password -U
$user -N -P >> $logfile
> ___________________________________________________________________
>
> Most Linux distributions come with nenscript for converting ASCII
> documents to Postscript. The following perl script makes life eas
> ier be providing a simple interface to Linux printing via smbprint.
>
> ___________________________________________________________________
> Usage: print [-a|c|p] <filename>
> -a prints <filename> as ASCII
> -c prints <filename> formatted as source code
> -p prints <filename> as Postscript
> If no switch is given, print attempts to
> guess the file type and print appropriately.
> ___________________________________________________________________
>
> Using smbprint to print ASCII files tends to truncate long lines.
> This script breaks long lines on whitespace (instead of in the mid
> dle of a word), if possible.
>
> The source code formatting is done with nenscript. It takes an
> ASCII file and foramts it in 2 columns with a fancy header (date,
> filename, etc). It also numbers the lines. Using this as an exam
> ple, other types of formatting can be accomplished.
>
> Postscript documents are already properly formatted, so they pass
> through directly.
>
> ___________________________________________________________________
> #!/usr/bin/perl
>
> # Script: print
> # Authors: Brad Marshall, David Wood
> # Plugged In Communications
> # Date: 960808
> #
> # Script to print to a Postscript printer via Samba.
> # Purpose: Takes files of various types as arguments and
> # processes them appropriately for piping to a Samba print script.
> #
> # Currently supported file types:
> #
> # ASCII - ensures that lines longer than $line_length characters
wrap on
> # whitespace.
> # Postscript - Takes no action.
> # Code - Formats in Postscript (using nenscript) to display
> # properly (landscape, font, etc).
> #
>
> # Set the maximum allowable length for each line of ASCII text.
> $line_length = 76;
>
> # Set the path and name of the Samba print script
> $print_prog = "/usr/bin/smbprint";
>
> # Set the path and name to nenscript (the ASCII-->Postscript
converter)
> $nenscript = "/usr/bin/nenscript";
>
> unless ( -f $print_prog ) {
> die "Can't find $print_prog!";
> }
> unless ( -f $nenscript ) {
> die "Can't find $nenscript!";
> }
>
> &ParseCmdLine(@ARGV);
>
> # DBG
> print "filetype is $filetype\n";
>
> if ($filetype eq "ASCII") {
> &wrap($line_length);
> } elsif ($filetype eq "code") {
> &codeformat;
> } elsif ($filetype eq "ps") {
> &createarray;
> } else {
> print "Sorry..no known file type.\n";
> exit 0;
> }
> # Pipe the array to smbprint
> open(PRINTER, "|$print_prog") || die "Can't open $print_prog: $!\n";
> foreach $line (@newlines) {
> print PRINTER $line;
> }
> # Send an extra linefeed in case a file has an incomplete last line.
> print PRINTER "\n";
> close(PRINTER);
> print "Completed\n";
> exit 0;
>
> # --------------------------------------------------- #
> # Everything below here is a subroutine #
> # --------------------------------------------------- #
> sub ParseCmdLine {
> # Parses the command line, finding out what file type the
file is
>
> # Gets $arg and $file to be the arguments (if the exists)
> # and the filename
> if ($#_ < 0) {
> &usage;
> }
> # DBG
> # foreach $element (@_) {
> # print "*$element* \n";
> # }
>
> $arg = shift(@_);
> if ($arg =~ /\-./) {
> $cmd = $arg;
> # DBG
> # print "\$cmd found.\n";
>
> $file = shift(@_);
> } else {
> $file = $arg;
> }
>
> # Defining the file type
> unless ($cmd) {
> # We have no arguments
>
> if ($file =~ /\.ps$/) {
> $filetype = "ps";
> } elsif ($file =~
/\.java$|\.c$|\.h$|\.pl$|\.sh$|\.csh$|\.m4$|\.inc$|\.html$|\.htm$/) {
> $filetype = "code";
> } else {
> $filetype = "ASCII";
> }
>
> # Process $file for what type is it and return
$filetype
> } else {
> # We have what type it is in $arg
> if ($cmd =~ /^-p$/) {
> $filetype = "ps";
> } elsif ($cmd =~ /^-c$/) {
> $filetype = "code";
> } elsif ($cmd =~ /^-a$/) {
> $filetype = "ASCII"
> }
> }
> }
>
> sub usage {
> print "
> Usage: print [-a|c|p] <filename>
> -a prints <filename> as ASCII
> -c prints <filename> formatted as source code
> -p prints <filename> as Postscript
> If no switch is given, print attempts to
> guess the file type and print appropriately.\n
> ";
> exit(0);
> }
>
> sub wrap {
> # Create an array of file lines, where each line is < the
> # number of characters specified, and wrapped only on
whitespace
>
> # Get the number of characters to limit the line to.
> $limit = pop(@_);
>
> # DBG
> #print "Entering subroutine wrap\n";
> #print "The line length limit is $limit\n";
>
> # Read in the file, parse and put into an array.
> open(FILE, "<$file") || die "Can't open $file: $!\n";
> while(<FILE>) {
> $line = $_;
>
> # DBG
> #print "The line is:\n$line\n";
>
> # Wrap the line if it is over the limit.
> while ( length($line) > $limit ) {
>
> # DBG
> #print "Wrapping...";
>
> # Get the first $limit +1 characters.
> $part = substr($line,0,$limit +1);
>
> # DBG
> #print "The partial line is:\n$part\n";
>
> # Check to see if the last character is a
space.
> $last_char = substr($part,-1, 1);
> if ( " " eq $last_char ) {
> # If it is, print the rest.
>
> # DBG
> #print "The last character was a
space\n";
>
> substr($line,0,$limit + 1) = "";
> substr($part,-1,1) = "";
> push(@newlines,"$part\n");
> } else {
> # If it is not, find the last space in
the
> # sub-line and print up to there.
>
> # DBG
> #print "The last character was not a
space\n";
>
> # Remove the character past $limit
> substr($part,-1,1) = "";
> # Reverse the line to make it easy to
find
> # the last space.
> $revpart = reverse($part);
> $index = index($revpart," ");
> if ( $index > 0 ) {
> substr($line,0,$limit-$index) = "";
>
push(@newlines,substr($part,0,$limit-$index)
> . "\n");
> } else {
> # There was no space in the line, so
> # print it up to $limit.
> substr($line,0,$limit) = "";
> push(@newlines,substr($part,0,$limit)
> . "\n");
> }
> }
> }
> push(@newlines,$line);
> }
> close(FILE);
> }
>
> sub codeformat {
> # Call subroutine wrap then filter through nenscript
> &wrap($line_length);
>
> # Pipe the results through nenscript to create a Postscript
> # file that adheres to some decent format for printing
> # source code (landscape, Courier font, line numbers).
> # Print this to a temporary file first.
> $tmpfile = "/tmp/nenscript$$";
> open(FILE, "|$nenscript -2G -i$file -N -p$tmpfile -r") ||
> die "Can't open nenscript: $!\n";
> foreach $line (@newlines) {
> print FILE $line;
> }
> close(FILE);
>
> # Read the temporary file back into an array so it can be
> # passed to the Samba print script.
> @newlines = ("");
> open(FILE, "<$tmpfile") || die "Can't open $file: $!\n";
> while(<FILE>) {
> push(@newlines,$_);
> }
> close(FILE);
> system("rm $tmpfile");
> }
>
> sub createarray {
> # Create the array for postscript
> open(FILE, "<$file") || die "Can't open $file: $!\n";
> while(<FILE>) {
> push(@newlines,$_);
> }
> close(FILE);
> }
> ___________________________________________________________________
>
> Now the MagicFilter way. Thanks to Alberto Menegazzi
> (flash.egon@xxxxxx) for this information.
>
> Alberto says:
>
> --------------------------%<---------------------------------- 1)
> Install MagicFilter with the filter for the printers you need in
> /usr/bin/local but DON'T fill /etc/printcap with the suggestion
> given by the documentation from MagicFilter.
>
> 2) Write the /etc/printcap like this way (it's done for my LaserJet
> 4L):
>
> lp|ljet4l:\ :cm=HP LaserJet 4L:\ :lp=/dev/null:\
> # or /dev/lp1 :sd=/var/spool/lpd/ljet4l:\
> :af=/var/spool/lpd/ljet4l/acct:\ :sh:mx#0:\
> :if=/usr/local/bin/main-filter:
>
> You should explain that the lp=/dev/... is opened for locking so
> "virtual" devices one for every remote printer should be used.
>
> Example creating with : touch /dev/ljet4l
>
> 3) Write the filter /usr/local/bin/main-filter the same you suggest
> using the ljet4l-filter instead of cat.
>
> Here's mine.
>
> #! /bin/sh logfile=/var/log/smb-print.log
> spool_dir=/var/spool/lpd/ljet4l ( echo "print -"
> /usr/local/bin/ljet4l-filter ) | /usr/bin/smbclient
> "\\\\SHIR\\HPLJ4" -N -P >> $logfile
>
> P.S. : here is the quote from the Print2Win mini-Howto about lock
> ing and why creating virtual printers
>
> ---Starts here
>
> Hint from Rick Bressler :
>
> Good tip sheet. I use something very similar. One helpful tip,
> this is not a particularly good idea:
>
> :lp=/dev/null:\
>
> lpr does an 'exclusive' open on the file you specify as lp=. It
> does this in order to prevent multiple processes from trying to
> print to the dame printer at the same time.
>
> The side effect of this is that in your case, eng and colour can't
> print at the same time, (usually more or less transparent since
> they probably print quickly and since they queue you probably don't
> notice) but any other process that tries to write to /dev/null will
> break!
>
> On a single user system, probably not a big problem. I have a sys
> tem with over 50 printers. It would be a problem there.
>
> The solution is to create a dummy printer for each. Eg: touch
> /dev/eng.
>
> I have modified the lp entries in the printcap file above to take
> into account Rick's suggestion. I did the following:
>
> #touch /dev/eng #touch /dev/colour
>
> ---Ends here
>
> --------------------------%<----------------------------------
>
> 10. Backing Up Windows Machines to a Linux Host
>
> Adam Neat (adamneat@xxxxxxxxxxx) kindly contributed the following
> script to back up Windows machines to a Linux host, using the
> smbclient utility. Adam says that it is used to backup Windows 3.x
> and NT machines to a Linux based DAT SCSI Drive.
>
> Adam is not proud of the coding style used here, but it works. As
> I like to say, "If it works and its stupid, then it is not stupid".
>
> In this script, the string 'agnea1' is the username on the Linux
> machine that does the backups.
>
> ___________________________________________________________________
> #!/bin/bash
>
> clear
> echo Initialising ...
> checkdate=`date | awk '{print $1}'`
>
> if [ -f "~agnea1/backup-dir/backup-data" ]; then
>
> echo "ERROR: No config file for today!"
> echo "FATAL!"
> exit 1
> fi
>
> if [ -d "~agnea1/backup-dir/temp" ]; then
>
> echo "ERROR: No tempoary directory found!"
> echo
> echo "Attempting to create"
> cd ~agnea1
> cd backup-dir
> mkdir temp
> echo "Directory Made - temp"
> fi
>
> if [ "$1" = "" ]; then
>
> echo "ERROR: enter in a machine name (ie: cdwriter)"
> exit 1
> fi
>
> if [ "$2" = "" ]; then
>
> echo "ERROR: enter in a SMB (Lan Manager) Resource (ie:
work)"
> exit 1
> fi
>
> if [ "$3" = "" ]; then
>
> echo "ERROR: enter in an IP address for $1 (ie:
> 130.xxx.xxx.52)" exit 1
> fi
>
>
############################################################################
#
> # Main Section
> #
>
############################################################################
#
>
> cd ~agnea1/backup-dir/temp
> rm -r ~agnea1/backup-dir/temp/*
> cd ~agnea1/backup-dir/
>
> case "$checkdate"
> in
> Mon)
> echo "Backuping for Monday"
> cat backup-data | /usr/local/samba/bin/smbclient
> \\\\$1\\$2 -I$3 -N echo "Complete"
>
> if [ -d "~agnea1/backup-dir/Monday" ]; then
> echo "Directory Monday Not found ...
> making" mkdir
> ~agnea1/backup-dir/Monday
> fi
>
> echo "Archiving ..."
> cd ~agnea1/backup-dir/temp
> tar -cf monday.tar * echo "done ..."
> rm ~agnea1/backup-dir/Monday/monday.tar
> mv monday.tar ~agnea1/backup-dir/Monday
> ;;
>
> Tue)
> echo "Backuping for Tuesday"
> cat backup-data | /usr/local/samba/bin/smbclient
> \\\\$1\\$2 -I$3 -N echo "Complete"
>
> if [ -d "~agnea1/backup-dir/Tuesday" ]; then
> echo "Directory Tuesday Not found ...
> making" mkdir
> ~agnea1/backup-dir/Tuesday
> fi
> echo "Archiving ..."
> cd ~agnea1/backup-dir/temp
> tar -cf tuesday.tar *
> echo "done ..."
> rm ~agnea1/backup-dir/Tuesday/tuesday.tar
> mv tuesday.tar ~agnea1/backup-dir/Tuesday
> ;;
>
> Wed)
> echo "Backuping for Wednesday"
> cat backup-data | /usr/local/samba/bin/smbclient
> \\\\$1\\$2 -I$3 -N echo "Complete"
>
> if [ -d "~agnea1/backup-dir/Wednesday" ];
then
> echo "Directory Wednesday Not found
> ... making" mkdir
> ~agnea1/backup-dir/Wednesday
> fi
> echo "Archiving ..."
> cd ~agnea1/backup-dir/temp
> tar -cf wednesday.tar *
> echo "done ..."
> rm ~agnea1/backup-dir/Wednesday/wednesday.tar
> mv wednesday.tar ~agnea1/backup-dir/Wednesday
> ;;
>
> Thu)
> echo "Backuping for Thrusday"
> cat backup-data | /usr/local/samba/bin/smbclient
> \\\\$1\\$2 -I$3 -N echo "Complete"
>
> if [ -d "~agnea1/backup-dir/Thursday" ]; then
> echo "Directory Thrusday Not found
...
> making" mkdir
> ~agnea1/backup-dir/Thursday
> fi
> echo "Archiving ..."
> cd ~agnea1/backup-dir/temp
> tar -cf thursday.tar *
> echo "done ..."
> rm ~agnea1/backup-dir/Thursday/thursday.tar
> mv thursday.tar ~agnea1/backup-dir/Thursday
> ;;
>
> Fri)
> echo "Backuping for Friday"
> cat backup-data | /usr/local/samba/bin/smbclient
> \\\\$1\\$2 -I$3 -N echo "Complete"
>
> if [ -d "~agnea1/backup-dir/Friday" ]; then
> echo "Directory Friday Not found ...
> making" mkdir
> ~agnea1/backup-dir/Friday
> fi
> echo "Archiving ..."
> cd ~agnea1/backup-dir/temp
> tar -cf friday.tar *
> echo "done ..."
> rm ~agnea1/backup-dir/Friday/friday.tar
> mv friday.tar ~agnea1/backup-dir/Friday
> ;;
>
> *)
> echo "FATAL ERROR: Unknown variable passed for day"
> exit 1;;
>
> esac
> ###########
> ___________________________________________________________________
>
> 11. Copyright
>
> This HOWTO is copyright 1996-9 by David Wood. It may be reproduced
> in any form and freely distributed as long as the file stays
> intact, including this statement.
>
> 12. Acknowledgements
>
> Brad Marshall (bmarshall@xxxxxxxxxxxxxx) and Jason Parker
> (jparker@xxxxxxxxxxxxxx) contributed time, patience, scripting and
> research.
>
> Adam Neat (adamneat@xxxxxxxxxxx) contributed the bash script used
> to back up Windows machines to a Linux host.
>
> Matthew Flint () told me about the use of the 'interfaces' option
> in smb.conf.
>
> Oleg L. Machulskiy (machulsk@xxxxxxxxxxxx), Jeff Stern
> (jstern@xxxxxxxxxxxxxxxxxxx), Dr. Michael Langner (langner@fiz-
> chemie.de and Erik Ratcliffe (erik@xxxxxxxxxxx) suggested
> modifications to the section on Sharing A Linux Printer With
> Windows Machines.
>
> Alberto Menegazzi (flash.egon@xxxxxx) contributed the MagicFilter
> setup to enable a Linux machine to share a Windows printer.
>
> Andrea Girotto (icarus@xxxxxxxxxxxxxxxxx) contributed a number of
> valuable suggestions throughout the document.
>
> Thanks, also, to all of the international translators that have
> brought this HOWTO to the non-English speaking world: Takeo Nakano
> (nakano@xxxxxxxxxxxxxxxx), Klaus-Dieter Schumacher (Klaus-
> Dieter.Schumacher@xxxxxxxxxxxxxxxx), Andrea Girotto
> (icarus@xxxxxxxxxxxxxxxxx) and many others for whom I don't have
> contact details.
>
>
----------------------------------------------------------------------------
----
> -----------------------------------------------------------------------
> LIP is all for free speech. But it was created for a purpose - to help
> people discuss technical programming related issues about Linux. If
> your messages are counterproductive to this purpose, your privileges to
> submit messages can and will be revoked.
>