Search |
University of Florida | Department of Physics
--> System Overview

--> General Public Domain

--> Bind

--> DHCP

--> Emacs

--> ftpd

--> gcc & libg++

--> Ghostscript & Ghostview

--> GNUPLOT

--> GNU Enscript

--> LAPACK & BLAS

--> Logstats

--> Netscape

--> nmh

--> perl

 * samba

--> sendmail

--> ssh Admin

--> ssh Use

--> local ssh Use

--> tcp wrappers

--> tcsh

--> teTeX

--> Xanim

--> Xfig

--> XMgr

--> Xntpd

Samba

We use samba to integrate Microsoft Windows PC's into the network. Samba replaces NFS for disk mounting and printing. The server software is installed on one Solaris machine in each subnet. There is no special client software as the server software mimics an NT server, so the internal Client for Microsoft Networks software is all that is needed.

  1. Get the Samba source

  2. To build the Samba source:

    cd source
    /local/bin/tcsh
    setenv CC cc
    setenv CFLAGS "-mr -Qn -xdepend -xO3"
    ./configure --with-automount --with-pam
    Now edit the Makefile to change the location of the smb.conf file to /etc/smb.conf, then type make and become root to "make install".

  3. Create the /etc/smb.conf

    You can use swat to do things like adding shares, and checking to see what shares are in use etc, but from my brief attempt at trying to use it from scratch you are better off with vi

    1. Create the [global] section. You can start from the sample one. Make sure you read up on the Domain Controller stuff etc. As soon as I understand it all I will put an explanaion here :). Here is my global section:

      [global]
         workgroup = PHYS.ULTRA
         server string = Ultra samba server
         hosts allow = 128.227.89.0/255.255.255.0 10.227.89.40
      # Make sure you create this dir and set it to be read by root only
         log file = /var/samba/log.%m
         max log size = 500
       
         security = user
       
      # To work with Win95 we need to comment this out.
      # (or turn off encryption on Win98)
      ;  encrypt passwords = yes
       
         socket options = TCP_NODELAY 
      
         domain master = yes
         preferred master = yes
         domain logons = yes
       
         wins server = 128.227.64.2
      
      # This does dns lookups to find NetBios names.  If this is turned
      # off then we probably need to keep the lmhosts file on the wins
      # server up to date.
         dns proxy = yes
       
      # Add printing support
         printing = lprng
         load printers = yes
         printcap name = /etc/printcap
    2. Create the spool directory for printing. This should be set in the [printers] stanza of the /etc/smb.conf, I use /var/spool/samba. Chmod it to 777 +t and make it owned by daemon:daemon
      Here is the [printers] share:

      [printers]
         comment = All Printers
         path = /usr/spool/samba
         print command = /usr/local/bin/lpr -r -P%p %s
         lpq command = /usr/local/bin/lpq -P%p
         lprm command = /usr/local/bin/lprm -P%p %j
         browseable = yes
         public = no
         writable = no
         guest ok= no
         printable = yes
         create mode = 0700

  4. I do not have the samba servers showing up in network neighborhood yet. What I find to be a much better way to browse shares is to use the Find function of Windows 95. This is under the Start button. Specifically click on Start then Find then Computer. Type in the name of the Samba server you are loking for (for example ultra) then when the server has been found right click on it and drag it to the desktop (or the Physics folder) to make a link to the machine. You can then browse any of the share for which you have user access to.

  5. Add these lines to /etc/inetd.conf:
    
    #Samba
    netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd 
    netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd
  6. Here is the /etc/smb.conf file we use on the server for the main office and staff:

    
    # NOTE: Whenever you modify this file you should run the command "testparm"
    # to check that you have not many any basic syntactic errors. 
    #
    #======================= Global Settings =====================================
    [global]
    
    # Set the workgroup on the staff PC's to this:
       workgroup = PHYS.ULTRA
    
    # If we ever get browsing to work this is what we should see:
       server string = Ultra samba server
    
    # These are the allowed hosts: 
       hosts allow = 128.227.89. 128.227.64. dan-p.phys.ufl.edu
    
    # this tells Samba to use a separate log file for each machine
    # that connects
       log file = /var/samba/log.%m
    
    # Put a capping on the size of the log files (in Kb).
       max log size = 500
    
    # Security mode. Most people will want user level security. See
    # security_level.txt for details.
       security = user
    
    # To work with Win98 we need to do this (or turn off encryption on Win98)
    # You may wish to use password encryption. Please read
    # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
    # Do not enable this option unless you have read those documents
    ;  encrypt passwords = yes
    
    # Most people will find that this option gives better performance.
    # See speed.txt and the manual pages for details
       socket options = TCP_NODELAY 
    
    
    # Domain Master specifies Samba to be the Domain Master Browser. This
    # allows Samba to collate browse lists between subnets. Don't use this
    # if you already have a Windows NT domain controller doing this job
       domain master = yes 
    
    # Preferred Master causes Samba to force a local browser election on startup
    # and gives it a slightly higher chance of winning the election
       preferred master = yes
    
    # I think this is what allows us to use "Windows Logon" to logon to the Win95 machines.
    # The password typed in there is given to the samba server for each connection.
    # Enable this if you want Samba to be a domain logon server for 
    # Windows95 workstations. 
       domain logons = yes
    
    # This requires us to have an lmhosts file
    # Windows Internet Name Serving Support Section:
    # WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
       wins support = yes
    
    # WINS Server - Tells the NMBD components of Samba to be a WINS Client
    #	Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
    ;   wins server = w.x.y.z
    
    
    # DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
    # via DNS nslookups. The built-in default for versions 1.9.17 is yes,
    # this has been changed in version 1.9.18 to no.
       dns proxy = yes 
    
    # Add printing support
       printing = lprng
       load printers = yes
       printcap name = /etc/printcap
    
    
    #============================ Share Definitions ==============================
    
    # We should have one entry for each staff member like this one for Dan.
    # A private directory, usable only by Dan. Note that Dan requires write
    # access to the directory.
    [dan]
       comment = Dan's Directory
       path = /var/tmp/ddr
       valid users = ddr
       public = no
       writable = yes
       printable = no
    
    [cindy]
       comment = Cindy's Directory
       path = /moffice/pc/cindy
       valid users = bright
       public = no
       writable = yes
       printable = no
    
    [beth]
       comment = Beth's Directory
       path = /moffice/pc/beth
       valid users = beth 
       public = no
       writable = yes
       printable = no
    
    [gloria]
       comment = Gloria's Directory
       path = /moffice/pc/gloria
       valid users = gloria ddr 
       public = no
       writable = yes
       printable = no
    
    [neil]
       comment = Neil's Directory
       path = /moffice/pc/neil
       valid users = neil 
       public = no
       writable = yes
       printable = no
    
    [connie]
       comment = Connie's Directory
       path = /moffice/pc/connie
       valid users = connie ddr 
       public = no
       writable = yes
       printable = no
    
    [joan]
       comment = Joan's Directory
       path = /moffice/pc/joan
       valid users = joan 
       public = no
       writable = yes
       printable = no
    
    [rita]
       comment = Rita's Directory
       path = /moffice/pc/rita
       valid users = rita 
       public = no
       writable = yes
       printable = no
    
    [cathy]
       comment = Cathy's Directory
       path = /moffice/pc/cathy
       valid users = cathy 
       public = no
       writable = yes
       printable = no
    
    [susan]
       comment = Susan's Directory
       path = /moffice/pc/susan
       valid users = susan 
       public = no
       writable = yes
       printable = no
    
    [undergra]
       comment = Darlene's Directory
       path = /moffice/pc/undergraduate
       valid users = darlene 
       public = no
       writable = yes
       printable = no
    
    [darlene]
       comment = Darlene's Directory
       path = /moffice/pc/darlene
       valid users = darlene 
       public = no
       writable = yes
       printable = no
    
    # We should have a shared area for each group 
    # (Main office, Student Services, IFT, HEE)
    # The following two entries demonstrate how to share a directory so that two
    # users can place files there that will be owned by the specific users. In this
    # setup, the directory should be writable by both users and should have the
    # sticky bit set on it to prevent abuse. Obviously this could be extended to
    # as many users as required.
    
    [gradsec]
       comment = Grad Office Share
       path = /moffice/pc/gradsec
       valid users = susan darlene ddr 
       force group = studsvc
       public = no
       writable = yes
       printable = no
       create mask = 0770
    
    [studsvc]
       comment = Grad Office Share with student
       path = /moffice/pc/studsvc
       valid users = susan darlene leota 
       force group = studsvc
       public = no
       writable = yes
       printable = no
       create mask = 0770
    
    [heesec]
       comment = High Energy Share with student
       path = /moffice/pc/heesec
       valid users = beth kelly dfc ddr
       force group = heesec
       public = no
       writable = yes
       printable = no
       create mask = 0750
    
    [deptsec]
       comment = Main Office Share
       path = /moffice/pc/deptshare
       valid users = neil joan connie rita cathy ddr  
       force group = deptoffice
       public = no
       writable = yes
       printable = no
       create mask = 0770
    
    [neil-cathy]
       comment = Main Office Share
       path = /moffice/pc/neil-cathy
       valid users = neil joan connie cathy ddr
       force group = deptoffice
       public = no
       writable = yes
       printable = no
       create mask = 0770
    
    [faculty]
     comment = Old Faculty Records
       path = /moffice/pc/faculty
       valid users = neil joan connie cathy ddr
       force group = deptoffice
       public = no
       writable = yes
       printable = no
       create mask = 0770
    
    [chair]
       comment = Chairman's Office Share
       path = /moffice/pc/chairshare
       valid users = neil joan connie
       force group = deptoffice
       public = no
       writable = yes
       printable = no
       create mask = 0770
    
    # Printing support added for the phaser color laser printer
    # NOTE: If you have a BSD-style print system there is no need to 
    # specifically define each individual printer
    [printers]
       comment = All Printers
       path = /usr/spool/samba
       valid users = cathy ddr chandra avery
       print command = /usr/local/bin/lpr -r -P%p %s
       lpq command = /usr/local/bin/lpq -P%p
       lprm command = /usr/local/bin/lprm -P%p %j
       browseable = no
       public = no
       writable = no
       printable = yes
       create mode = 0700