Enabling SaMBa Under Solaris 10
IBM created a proprietary file sharing protocol under DOS referred to as SMB. This was adopted by Microsoft, and it later became referred to as CIFS. Open Source developers took a portion of the file sharing suite an implemented it under a product called SaMBa. Solaris 10 ships with an installation of SaMBa to allow for rudimentary SMB and CIFS cfile sharing.
SaMBa is already installed with Solaris 10 Update 4 until Update 9. Creating a configuration file with a service start is all that is required. The Samba book from O'Reilly is an excellent resource in trying to understand all of the obtuse options available
Check to see if you are working with a fairly recent release of Solaris 10, with the SaMBa support.
sunv890/user$ svcs -a | grep samba disabled Jan_28 svc:/network/samba:default
If you try to enable SaMBa without the configuration file, the service will not function, but will reside in maintenance mode until repaired and restarted:
sunv890/root$ svcadm enable samba sunv890/user$ svcs -a | grep samba maintenance 10:23:47 svc:/network/samba:default
The Service Management Facility (SMF) will identify the failed service and log the problem.
SaMBa/user$ tail /var/adm/messages Feb 11 14:08:46 sunv890 svc.startd: [ID 652011 daemon.warning] svc:/network/samba:default: Method "/usr/sfw/sbin/smbd -D" failed with exit status 255. Feb 11 14:08:46 SaMBa svc.startd: [ID 748625 daemon.error] network/samba:default failed: transitioned to maintenance (see 'svcs -xv' for details)
Debugging is fairly simple - just look for the configuration file. In this example, there is none.
sunv890/user$ ls -al /etc/sfw/smb.conf /etc/sfw/smb.conf: No such file or directory
Create a sample configuration file to share the temporary directory as writable, ensure SaMBa will be derived as a host name, install the configuration file. (Note, you can always substitute an IP Address for SaMBa.)
sunv890/user$ cat /etc/sfw/smb.conf # Global parameters [global] workgroup = netbios name = SaMBa security = SHARE local master = No guest account = nobody delete veto files = Yes encrypt passwords = Yes winbind uid = 10000-65000
# Configure Samba to enable or require SMB signing as appropriate. # To enable SMB signing, put in Samba config global section ; server signing = auto # To require SMB signing, put in Samba config global section server signing = mandatory
# Disable LANMAN Authentication in Samba config global section lanman auth = No [Temp] comment = Temporary Share path = /tmp writeable = Yes guest ok = Yes preserve case = No sunv890/root$ svcadm disable samba sunv890/root$ svcadm enable samba sunnv890/user$ svcs samba STATE STIME FMRI online 14:17:01 svc:/network/samba:default
To test your installation, from a Windows platform, try to browse the temporary directory, or read a sample file which you know is in the directory.
Start -> Run -> \\sunv890\Temp Start -> Run -> wordpad \\sunv890\Temp\smb.confConclusion:
The SaMBa configuration under Solaris 10 is simple and managed well by the Service Management Facility infrastructure of Solaris 10.
Editor's Note: This blog article was published in 2011 and adjusted in 2017-08-14 to add Signing and Authentication enhancements to the default SaMBa configuration.