descriptionFUSE filesystem for SMB / CIFS shares
homepage URLhttp://ametros.net/code.html
ownerfirst-six-letters-of-UK-keyboard@acm.org
last changeMon, 4 Feb 2013 19:32:17 +0000 (4 19:32 +0000)
content tags
add:
README
usmb - Unprivileged mounting of SMB/CIFS shares via FUSE
========================================================

Acknowledgements
----------------

Jonathan Schultz (Email <firstname> at imatix.com) provided a patch
to fix the display of file modification times.

Stijn Hoop (Email <firstname> at sandcat.nl) provided a patch to fix
a compilation problem on 64-bit platforms.

Nigel Smith (Email me at <firstname>.<surname>.name) contributed the
port to Samba 3.2.

Michal Suchanek (Email hramrach at centrum dot cz) contributed the
Debian packaging and the initial implementation of ~-expansion.


Introduction
------------

usmb lets you mount SMB/CIFS shares via FUSE, in the vein of the Map Network
Drive functionality in Windows.

The two existing FUSE filesystems that I know of (SMB for FUSE and fusesmb)
mimic Windows' Network Neighbourhood by letting you browse hosts and shares.
This means that you must run a NetBIOS name server and can't see hosts that
aren't advertised via NetBIOS.

You can build [u]mount.cifs in the Samba distribution and install them
setuid root, but that has its own set of security implications. In any
case there's no need for network filesystem code to be in the kernel:
bugs could lead to remotely exploitable kernel vulnerabilities. Running
the SMB client code in user space as an unprivileged user limits the
potential damage due to bugs.

A user space implementation will be slower than a kernel filesystem since
the data must be copied in and out of the fuse process' context as well as
in/out of the user process' context. Mitigating factors are:

1. Increased security.
2. Containment of bugs.
3. Throughput is more likely to be limited by network bandwidth rather than
   local memory copying.
4. The client filesystem code can be upgraded/fixed without kernel changes.


Pre-Requisites and Installation
-------------------------------

Please see INSTALL.


Configuration
-------------

You need an XML configuration file - ${HOME}/.usmb.conf by default. There's an
example in usmb.conf.

There are two main elements: credentials and mounts.

Credentials:

  <credentials id="some_id">
    <domain>mydomain</domain>
    <username>username</username>
    <password>password</password>
  </credentials>

Each credentials element gives authentication details. You can have multiple
credentials elements; each must have a distinct id attribute. If you omit
the <password> element then usmb will prompt you for a password.

A mount element describes an SMB share:

  <mount id="mount_id" credentials="some_id">
    <server>1.2.3.4</server>
    <share>sharename</share>
    <mountpoint>/tmp/share</mountpoint>
  </mount>

The credentials attribute identifies the id of the credentials element that
provides authentication details for the share. The server, share and
mountpoint should be self-explanatory. The id is given on the usmb command
line to identify the SMB share to mount.

You can specify multiple mount elements; each must have a distinct id
(though credentials and mount IDs can be the same).

The whole file is wrapped in a <usmbconfig> element.


Usage
-----

$ usmb [options] mount_ID

Use usmb --help for a list of options.
Mount IDs are defined in the configuration file.
shortlog
2013-02-04 Geoff JohnstoneIt's 2013.master20130204
2013-02-04 Geoff JohnstoneVersion 20130204 (stable).
2013-02-04 Geoff Johnstoneutils.c: don't reuse a va_list.
2013-02-04 Geoff JohnstoneFix debug mode compilation on 64-bit boxes.
2012-10-20 Geoff JohnstoneIgnore *.o.
2012-08-25 Geoff JohnstoneFix a gcc 4.6 warning.
2010-06-20 Geoff JohnstoneAdd separate INSTALL file.
2010-06-20 Michal SuchanekFix tarball filename for non-snapshot tarballs.
2010-04-02 Geoff JohnstoneDefine version info in autconf.
2010-04-02 Geoff JohnstoneRemove config.status implicit rule.
2010-04-02 Geoff JohnstoneVersion 20100404.
2010-04-02 Geoff JohnstoneMakefile.in: updates wrt manpage.
2010-04-02 Geoff JohnstoneFix erroneous comment in usmb.conf.
2010-04-02 Geoff JohnstoneMajor manpage overhaul.
2010-04-01 Geoff JohnstoneMerge branch 'debian'
2010-03-22 Michal SuchanekDetermine snapshot date from commit date, simplifydebian
...
tags
11 years ago 20130204
14 years ago 20100212
15 years ago 20090411
15 years ago 20090410
15 years ago usmb-20081220
17 years ago usmb-20060708
17 years ago usmb_pre-contexts
17 years ago usmb-20060519
17 years ago 20060518
heads
11 years ago master
11 years ago fuseopt
13 years ago kerberos
14 years ago debian
14 years ago stable
forks
Cached version (5787s old)
usmb/hramrach.git a few patches for usmb hramrach@centrum.cz 14 years ago