samba

Share your files and printer on a Windows network with samba


February 2003


Let's say you have installed Linux into a mostly Windows network and want to share data back and forth with the other machines. Samba uses /etc/samba/smb.conf for it's main config file.

Start by editing that file, and changing:

# workgroup = NT-Domain-Name or Workgroup-Name
        workgroup = MYGROUP

# server string is the equivalent of the NT Description field
        server string = Samba Server

 

To something that makes sense for your network. For example, your workgroup=, should equal the Windows workgroup, the server string should be set to whatever you'd like the comment to be on the Windows side.

Next, let's share a directory. Add:

[stuff]
comment = My stuff
path = /my/stuff/
valid users = userA userB
public = no
writable = yes
printable = no
create mask = 0765

 

To share directory /my/stuff to userA and userB, under a sharename of 'stuff'. Or modify one of the samples, if it suits your needs.

Nowadays, Windows uses encrypted SMB passwords, to set up encrypted passwords on your linux box:

Create a separate password file for Samba. To create one based on your existing /etc/passwd file, at a shell prompt, type the following command:

cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

 

Make it readable and writable by root:

chmod 600 /etc/samba/smbpasswd

 

The script does not copy user passwords to the new file. To set each Samba user's password, use the command (replace username with each user's username):

smbpasswd username

A Samba user account will not be active until a Samba password is set for it.

Encrypted passwords must be enabled in the Samba configuration file. In the file smb.conf, verify that the following lines are not commented out:

encrypt password = yes
smb passwd file = /etc/samba/smbpasswd

 

Make sure the smb service is started by typing the command 'service smb restart' at a shell prompt. 'chkconfig smb on' will make it start with each boot.

To connect to this share from Windows, use Network Neighborhood or Internet Explorer. To connect with another Linux box use:

smbclient //hostname/sharename -U username

 

Or browse to it by typing smb:// into the location field of Nautilus, hit enter and click into the share you want.

To share your printer, use the Fred's Printer example of the config file, changing the home directory to one that's valid, and setting:

public=yes

Along with valid users.