Added README. Expanded example configuration file. Added install, install-strip and uninstall make targets. - susmb - mounting of SMB/CIFS shares via FUSE
HTML git clone git://git.codemadness.org/susmb
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit 7040514c4a9bd75fd5a22a6e562165cdd3e30d00
DIR parent 6bf1827f804d12efddc9e89f62cb4cd5ce478406
HTML Author: geoff <devnull@localhost>
Date: Sun, 7 May 2006 22:18:04 +0000
Added README.
Expanded example configuration file.
Added install, install-strip and uninstall make targets.
Diffstat:
M Makefile | 21 ++++++++++++++++++++-
A doc/README | 79 +++++++++++++++++++++++++++++++
A doc/usmb.conf | 43 ++++++++++++++++++++++++++++++
D usmb.conf | 16 ----------------
4 files changed, 142 insertions(+), 17 deletions(-)
---
DIR diff --git a/Makefile b/Makefile
@@ -1,5 +1,9 @@
SAMBA = /opt/samba
CC = gcc
+INSTALL = install
+
+PREFIX = /usr/local
+BINDIR = $(PREFIX)/bin
CFLAGS = -Wall -W -std=c99 -pedantic -O \
-I$(SAMBA)/include -D_BSD_SOURCE -DFUSE_USE_VERSION=25 \
@@ -24,10 +28,25 @@ all: $(PROGRAM)
debug: CFLAGS += -ggdb -DDEBUG
debug: all
+
$(PROGRAM): $(OBJECTS)
$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
+
clean:
$(RM) $(PROGRAM) $(OBJECTS)
-.PHONY: all debug clean
+
+install-strip: STRIPFLAGS = -s
+install install-strip: $(PROGRAM)
+ mkdir -p $(BINDIR)
+ $(INSTALL) -m 755 $(STRIPFLAGS) $(PROGRAM) $(BINDIR)/
+
+
+uninstall:
+ $(RM) $(BINDIR)/$(PROGRAM)
+ rmdir -p $(BINDIR)
+ @echo Please delete ~/.usmb.conf manually.
+
+
+.PHONY: all debug install install-strip uninstall clean
DIR diff --git a/doc/README b/doc/README
@@ -0,0 +1,79 @@
+usmb - Unprivileged mounting of SMB shares via FUSE
+===================================================
+
+Introduction
+------------
+
+usmb lets you mount SMB 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.
+
+
+Pre-Requisites
+--------------
+
+glib 2.6 or later - www.gtk.org.
+libxml2 - ftp.gnome.org.
+FUSE 2.5 or later - fuse.sourgeforge.net.
+libsmbclient 3.0 (part of Samba) - www.samba.org.
+
+
+Installation
+------------
+
+Sorry, no autoconf yet.
+Edit the Makefile with brain engaged.
+Run make.
+Run make install (maybe as root).
+
+
+Configuration
+-------------
+
+You need an XML configuration file - ${HOME}/.usmb.conf by default. There's an
+example doc/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.
+
+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.
+
DIR diff --git a/doc/usmb.conf b/doc/usmb.conf
@@ -0,0 +1,43 @@
+<!--
+ Example usmb.conf
+ =================
+
+ This defines two shares:
+
+ \\192.168.0.5\share on /tmp/smb authenticating as WORKGROUP\user
+ \\winbox\music on /tmp/music authenticating as mydomain\anotheruser
+
+ These can be mounted using
+
+ usmb home
+ usmb music
+-->
+
+<usmbconfig>
+
+ <credentials id="cred1">
+ <domain>WORKGROUP</domain>
+ <username>user</username>
+ <password>pass</password>
+ </credentials>
+
+ <credentials id="cred2">
+ <domain>mydomain</domain>
+ <username>anotheruser</username>
+ <password>secret</password>
+ </credentials>
+
+ <mount id="home" credentials="cred1">
+ <server>192.168.0.5</server>
+ <share>myshare</share>
+ <mountpoint>/tmp/smb</mountpoint>
+ </mount>
+
+ <mount id="music" credentials="cred2">
+ <server>winbox</server>
+ <share>music</share>
+ <mountpoint>/tmp/music</mountpoint>
+ </mount>
+
+</usmbconfig>
+
DIR diff --git a/usmb.conf b/usmb.conf
@@ -1,16 +0,0 @@
-<usmbconfig>
-
- <credentials id="workgroup">
- <domain>WORKGROUP</domain>
- <username>user</username>
- <password>pass</password>
- </credentials>
-
- <mount id="home" credentials="workgroup">
- <server>127.0.0.1</server>
- <share>myshare</share>
- <mountpoint>/tmp/smb</mountpoint>
- </mount>
-
-</usmbconfig>
-