Samba

From Linuxintro

Samba allows you to access network drives on Windows computers from your Linux computer and to provide network drives for Windows computer on your Linux computer. If your computer accesses a network drive, you are using the Samba client. If you provide a network drive on your computer, you are running the Samba server.

Find out what is mountable

To find out what network shares are provided by a Windows server use the command

smbclient --user "windowsdomain\windowsuser" -L server

Mounting a network drive

You are on a Linux computer and want to mount a Windows computer's shared drive. To do this, open a console and type

mount -o username="windowsdomain\windowsuser",password=password //computer/share /mountpoint

Here you replace user by your user name, password by your password, computer by your computer's name, share by your share's name and /mountpoint by your mountpoint, e.g. /mnt/samba. Note that your mountpoint has to be an existing directory. This example has been tested with SUSE Linux Enterprise Server 10 and Windows Enterprise Server 2008 but should work same or similar with any distribution.

Providing a network drive

To provide your /tmp folder as a network drive that is accessible for Windows and Linux computers in the network using SAMBA:

  • make sure SAMBA is installed, e.g. on SUSE Linux:
yast -i samba
  • make sure /etc/samba/smb.conf contains the following:
[global]
	security = share

[tmp]
	comment = Temporary file space
	path = /tmp
	read only = no
	public = yes
/etc/init.d/smb restart
  • Then mount the tmp share
mount //localhost/tmp /mnt/smb

If this works, congratulations! Your samba is dancing now (ha, ha, bad joke ;) To make samba startup after a reboot, say

chkconfig smb on

TroubleShooting

Permission denied

If you get

mount error 13 = Permission denied

You may have to add the samba user for the mount. Like this:

smbpasswd -a root

If you get "Permission denied" when trying to write to a samba share, the option "force user" helped. If your folder on the samba server is writeable by "myuser", add

force user = myuser

to /etc/samba/smb.conf. Then samba will access the directory as myuser. Otherwise it will use (depending on configuration) the user nobody.

No such device or address

# mount -o username="server\Administrator",password=password //server/mydata /mnt/samba
retrying with upper case share name                                                                   
mount error(6): No such device or address                                                             
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) 

In this case it helped to go to the Windows server, click on "Advanced Sharing" -> "share this folder".

See also