Tero Karvinen - Articles - Downloads - Courses - Contact

Table of Contents

Linux as a Client to Windows SMB Shares

This article briefly explains how to access Windows SMB shares in Linux. Linux is a client here.

If you want to read about using Linux as a Samba server to serve files to Windows clients, see Samba Quickstart.

© 2005 Tero Karvinen http://www.iki.fi/karvinen

Quick Mini-HOWTO

This chapter contains just the required commands without any additional testing.

Here, we want to connect to smb://windowsuser:windowspassword@windowsserver/share (workgroup WINDOWSGANG), so we have:

Edit $HOME/sambapass (here: /home/linuxboy/sambapass)

# $HOME/sambapass
username = windowsuser
password = windowspassword
domain   = WINDOWSGANG

Create an empty directory (a mount point):

$ mkdir $HOME/mymountpoint/

As root, edit /etc/fstab, add this line in the end:

//windowsserver/share /home/tee/mymountpoint       
 smbfs 
 credentials=/home/tee/sambapass,uid=linuxboy,gid=linuxboy,dmask=700,fmask=700
 0       0

Put the above in a single line, I’ve splitted it only for readability. In options (credentials...fmask=700) there are no spaces. Numbers are zeros.

Then, as root, mount all mounts mentioned in fstab:

# mount -a 

Mount often warns you a couple of times about “session request to windowsserver failed (Called name not present)”, but with ls you can see that the directory was mounted.

Test is as normal user (here: linuxboy)

$ touch $HOME/mymountpoint/tero.txt
$ ls $HOME/mymountpoint/
tero.txt

Well done, you have mounted a windows share to Linux using just command line. If you ever have to reboot, it will be automatically mounted again.

Step-by-Step Process for Troubleshooting

If the above worked for you, good. No need to read more, unless you want to learn troubleshooting.

$ smbclient -L 172.28.1.133
session request to 172.28.1.133 failed (Called name not present)
session request to 172 failed (Called name not present)
Password: 
Anonymous login successful
Domain=[WORKGROUP] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
        Sharename       Type      Comment
Error returning browse list: NT_STATUS_ACCESS_DENIED

===

$ smbclient -L 172.28.1.133 -U kaapo%alofoiyl2890xb
session request to 172.28.1.133 failed (Called name not present)
session request to 172 failed (Called name not present)
Domain=[GHETTOYO] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       Remote IPC
        D$              Disk      Default share
        ADMIN$          Disk      Remote Admin
        C$              Disk      Default share
        tero            Disk      Teron testijako 
http://www.iki.fi/karvinen
        jako            Disk
session request to 172.28.1.133 failed (Called name not present)
session request to 172 failed (Called name not present)
Domain=[GHETTOYO] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------


$ smbclient //172.28.1.133/tero -U kaapo%alofoiyl2890xb

$ smbclient //172.28.1.133/tero -U kaapo%alofoiyl2890xb -c dir
session request to 172.28.1.133 failed (Called name not present)
session request to 172 failed (Called name not present)
Domain=[GHETTOYO] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
  .                                   D        0  Thu Dec  1 13:44:57 
2005
  ..                                  D        0  Thu Dec  1 13:44:57 
2005

                37032 blocks of size 2097152. 36219 blocks available

===

$ cat sambapass
username = kaapo
password = alofoiyl2890xb
domain   = WORKGROUP

$ smbclient -L 172.28.1.133 -A sambapass
session request to 172.28.1.133 failed (Called name not present)
session request to 172 failed (Called name not present)
Domain=[GHETTOYO] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       Remote IPC
        D$              Disk      Default share
        ADMIN$          Disk      Remote Admin
        C$              Disk      Default share
        tero            Disk      Teron testijako http://www.iki.fi/karvinen
        jako            Disk

===

$ sudo mount -t smbfs -o credentials=/home/tee/sambapass 
//172.28.1.133/tero/ /home/tee/teroghettoy/
mount: wrong fs type, bad option, bad superblock on 
//172.28.1.133/tero/,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so
(=> smbfs not installed)
$ sudo apt-get install smbfs

$ sudo mount -t smbfs -o credentials=/home/tee/sambapass //172.28.1.133/tero /home/tee/teroghettoy/
30872: session request to 172.28.1.133 failed (Called name not present)
30872: session request to 172 failed (Called name not present)
(but it still mounted)
tee@ubuntu:~$ mount |grep teroghettoy
//172.28.1.133/tero on /home/tee/teroghettoy type smbfs (rw)
$ sudo umount teroghettoy/
$ sudo umount teroghettoy/
umount: teroghettoy/: not mounted

$ sudo mount -t smbfs -o credentials=/home/tee/sambapass,uid=tee,gid=tee,dmask=700,fmask=700 //172.28.1.133/tero /home/tee/teroghettoy/

$ sudo mount 
	-t smbfs 
	-o credentials=/home/tee/sambapass,uid=tee,gid=tee,dmask=700,fmask=700
	//172.28.1.133/tero /home/tee/teroghettoy/

Now writing works. 

$ touch teroghettoy/foobar 
$ ls teroghettoy/
foobar

$ grep teroghettoy /etc/fstab
//172.28.1.133/tero /home/tee/teroghettoy       smbfs   \
	credentials=/home/tee/sambapass,uid=tee,gid=tee,dmask=700,fmask=700     \
	0       0

$ sudo mount -a

$ mount |grep teroghettoy
//172.28.1.133/tero on /home/tee/teroghettoy type smbfs (rw)

Last modified: 2005-12-01. Permanent url: http://www.iki.fi/karvinen/linux_as_a_client_to_windows_smb_shares.html

Tero Karvinen www.iki.fi/karvinen - Top - Validate HTML - Validate CSS