Home Community Forum IRC Shop Bugs Hg Cook
SliTaz GNU/Linux official and community documentation wiki.
.png

What is Samba?

The Samba or SMB suite is a collection of software to enable Windows-style networking on Linux computers. The name Samba is a variation on SMB, short for Server Message Block, which is the file sharing protocol used by Windows machines. The first version of Samba dates from 1992 and a lot of development has been invested over the years. This has resulted in very stable and reliable code. The Samba project also has its own website, www.samba.org where you can do more reading on all aspects of the program.

What can I do with it?

With Samba, your Slitaz machine is able to access file shares which are on Windows servers. Samba is a collection of programs which enable file sharing between Windows and Linux. It is also possible to host a Windows share on your Linux machine, allowing Windows clients to access the files as if they were on a Windows server.

How does it work?

The Samba Suite contains two components. A server implementation (next section) and a client implementation. For example if you have a storage device at home, it will most likely support SMB/CIFS. This means you can use the Samba client to access it from Linux. This is more convenient than ftp or http, especially when you want to use the share for more than just an incidental file copy. With Samba you can access the SMB share as if it were a local disk meaning you can read and write to it, both from the shell, from Perl or with the Graphic File Manager from the Slitaz distribution.

As usual, we use tazpkg to install the Samba client:

# tazpkg -gi smbclient
# tazpkg -gi smbfs

The tazpkg manager will take care of the dependencies so probably you will see a lot more packages being installed. Once this is completed, you can view the shares on your Windows server or storage system with:

# smbclient -L nas
Enter User's password: ****

This will provide a list of the shares available on \\nas. The result should look similar to the example below:

Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.3-31a.osstech]

	Sharename       Type      Comment
	---------       ----      -------
	IPC$            IPC       IPC Service ("My NAS")
	webaxs          Disk      
	share           Disk      LinkStation folder
	info            Disk      LinkStation Utilities
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.3-31a.osstech]

	Server               Comment
	---------            -------
	NAS                  My NAS

	Workgroup            Master
	---------            -------
	WORKGROUP            NAS
# 

From the above example, we are interested in access to Sharename 'share'. Although not strictly required, it is recommended to add the server name to /etc/hosts for name resolution when it has a fixed ip address. Because we are running on Linux we need to 'escape' the backslashes in the UNC path, effectively needing twice the number of them. Accessing \share on \\nas goes like this:

# smbclient \\\\nas\\share
Enter User's password: ****
smb: \> 

At the prompt you can issue ftp-style commands to browse the file system and read/write files. Typing help gives you a summary of the options:

smb: \> help
?              allinfo        altname        archive        blocksize      
cancel         case_sensitive cd             chmod          chown          
close          del            dir            du             echo           
exit           get            getfacl        hardlink       help           
history        iosize         lcd            link           lock           
lowercase      ls             l              mask           md             
mget           mkdir          more           mput           newer          
open           posix          posix_encrypt  posix_open     posix_mkdir    
posix_rmdir    posix_unlink   print          prompt         put            
pwd            q              queue          quit           readlink       
rd             recurse        reget          rename         reput          
rm             rmdir          showacls       setmode        stat           
symlink        tar            tarmode        translate      unlock         
volume         vuid           wdel           logon          listconnect    
showconnect    ..             !              
smb: \> quit
#

Fortunately you can also access a Windows share by mounting it on your box like this:

First create the mount point on your slitaz box: 
# mkdir /nas
#

Then issue the mount command:

# mount.cifs \\\\nas\\share /nas -o user=admin
Password: ******
#

An alternative method is like this:

# mount //nas/share /nas
Password: ******
#

If there is no access-denied-message in reply to the password, it means the share is mounted and can be accessed from your box. That's basically it! <note tip>The password must be the admin password for your storage device. This may not work when you have enabled user-based security. In some cases the mount may be read-only. </note> Many of the problems with Samba are caused by a lack of understanding the Windows security mechanism. In its basic version, which is still used most of the time, this is user-based security so you will need a valid windows user account to access the file share. When in trouble, verify the access is working from a windows machine and use the same credentials under Linux.

Running a Samba Server on Slitaz

If you need to set up a Windows file server but you don't want to invest in over-the-top hardware and Windows licenses, Samba is the way to go. Of course you can use Slitaz as the Linux platform to run the server. With this solution you will also benefit from the superior stability of the Linux OS. One of the problems of a Samba administrator is that he sometimes forgets the details of his installation because everything simply keeps on running once it has been set up properly. This is one of the reasons why Linux people need documentation anyway. ;-)

To install the server component of Samba, install the following package:

# tazpkg -gi samba

In order to make the user experience even more seamless, it is recommended to keep the accounts synchronized. This means the users should have the same username & password on their windows box as they are using on the Samba server. Explanation: When Windows connects to a share, it always attempts to authenticate using the credentials of the user that requests the access. If there is no match, the user is prompted for a username/password but when they are the same, the share is accessed without any further prompting.

The procedure to add a user to your samba server:

First add Linux user using the adduser command.

# adduser smbuser01
Changing password for smbuser01
New password: 
Retype password: 
Password for smbuser01 changed by root

Then add the same user name to Samba using: smbpasswd -a

# smbpasswd -a smbuser01
New SMB password:
Retype new SMB password:
Added user smbuser01.
# 

Use: smbpasswd -h to view the options.

The file shares and printers you want to allow your Windows clients access to can be defined in the Samba configuration file which is: /etc/samba/smb.conf

There are countless options to configure here like login scripts, home folders etcetera. Elaborating on all of them would be way beyond the scope of this guide.

A good place to start is http://www.tldp.org/HOWTO/SMB-HOWTO-2.html which provides a comprehensive overview of Samba but there are many other sites on the web with virtually the same content. As Samba has been around for over two decades, almost all things have already been tried, done and extensively documented in the process. Just search the web. You may encounter some negative comments as well but these are generally posted by people who made some basic mistake or have been the victim of some undocumented change in Windows. Don't let yourself be discouraged by this. Samba is Alive and Kicking and when you know how to search for them, you can be sure to find detailed answers to all issues you may encounter while setting up your own server.

 
en/guides/samba.txt ยท Last modified: 2013/04/30 22:12 by linea