URI:
       susmb - www.codemadness.org - www.codemadness.org saait content files
  HTML git clone git://git.codemadness.org/www.codemadness.org
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       susmb (7354B)
       ---
            1 1<- Back        /        codemadness.org        70
            2 i                codemadness.org        70
            3 i                codemadness.org        70
            4 i# susmb: unprivileged mounting of SMB/CIFS shares via FUSE                codemadness.org        70
            5 i                codemadness.org        70
            6 iLast modification on 2026-03-06                codemadness.org        70
            7 i                codemadness.org        70
            8 iusmb is a program to mount SMB shares from userland via FUSE.                codemadness.org        70
            9 iUnder-the-hood it uses Samba and exposes the network share as a regular local filesystem.                codemadness.org        70
           10 iPrograms can just access the filesystem and for example do not need to add code for SMB support or link against Samba.                codemadness.org        70
           11 iIt is more convenient than scripting around smbclient in some cases.                  codemadness.org        70
           12 hsmbclient(1): »https://www.samba.org/samba/docs/current/man-html/smbclient.1.html«        URL:https://www.samba.org/samba/docs/current/man-html/smbclient.1.html        codemadness.org        70
           13 i                codemadness.org        70
           14 isusmb is a fork of usmb from 2013-02-04.                codemadness.org        70
           15 hhttp://repo.or.cz/w/usmb.git/snapshot/aa94e132c12faf1a00f547ea4a96b5728612dea6.tar.gz        URL:http://repo.or.cz/w/usmb.git/snapshot/aa94e132c12faf1a00f547ea4a96b5728612dea6.tar.gz        codemadness.org        70
           16 i(git commit aa94e132c12faf1a00f547ea4a96b5728612dea6)                codemadness.org        70
           17 i                codemadness.org        70
           18 iusmb has been unmaintained since 2013. Sometimes programs are finished and so                codemadness.org        70
           19 ibeing unmaintained is not so bad. I think the general idea of the code was good                codemadness.org        70
           20 iand it is still a useful program for some systems, probably mostly BSD systems.                codemadness.org        70
           21 iLinux has a SMB/CIFS driver anyway.                codemadness.org        70
           22 i                codemadness.org        70
           23 iThe two main reasons I forked usmb were performance issues with it on OpenBSD                codemadness.org        70
           24 i(because of hardcoded options and assumptions for FUSE for Linux) and issues by                codemadness.org        70
           25 iusing it in non-interactive mode.                codemadness.org        70
           26 i                codemadness.org        70
           27 i                codemadness.org        70
           28 i## Clone                codemadness.org        70
           29 i                codemadness.org        70
           30 i        git clone git://git.codemadness.org/susmb                codemadness.org        70
           31 i                codemadness.org        70
           32 i                codemadness.org        70
           33 i## Browse                codemadness.org        70
           34 i                codemadness.org        70
           35 iYou can browse the source-code at:                codemadness.org        70
           36 i                codemadness.org        70
           37 h* https://git.codemadness.org/susmb/        URL:https://git.codemadness.org/susmb/        codemadness.org        70
           38 1* gopher://codemadness.org/1/git/susmb        /git/susmb        codemadness.org        70
           39 i                codemadness.org        70
           40 i                codemadness.org        70
           41 i## Download releases                codemadness.org        70
           42 i                codemadness.org        70
           43 iReleases are available at:                codemadness.org        70
           44 i                codemadness.org        70
           45 h* https://codemadness.org/releases/susmb/        URL:https://codemadness.org/releases/susmb/        codemadness.org        70
           46 1* gopher://codemadness.org/1/releases/susmb        /releases/susmb        codemadness.org        70
           47 i                codemadness.org        70
           48 i                codemadness.org        70
           49 i## Build and install                codemadness.org        70
           50 i                codemadness.org        70
           51 i        $ make                codemadness.org        70
           52 i        # make install                codemadness.org        70
           53 i                codemadness.org        70
           54 i                codemadness.org        70
           55 i## Dependencies                codemadness.org        70
           56 i                codemadness.org        70
           57 i* C compiler.                codemadness.org        70
           58 i* libc + BSD extensions (libbsd on Linux).                codemadness.org        70
           59 i* FUSE 2.6 or later (and probably version <3).                codemadness.org        70
           60 i* Samba / libsmbclient 4.20+.                codemadness.org        70
           61 i                codemadness.org        70
           62 i                codemadness.org        70
           63 i## Usage example                codemadness.org        70
           64 i                codemadness.org        70
           65 i        susmb \                codemadness.org        70
           66 i                -u hiltjo \                codemadness.org        70
           67 i                -f \                codemadness.org        70
           68 i                -o 'uid=1000,gid=1000,allow_other' \                codemadness.org        70
           69 i                "smb://domain\someuser@192.168.1.1/Storage" \                codemadness.org        70
           70 i                /mnt/share                codemadness.org        70
           71 i                codemadness.org        70
           72 i                codemadness.org        70
           73 i## Changes                codemadness.org        70
           74 i                codemadness.org        70
           75 isusmb has the patches applied from OpenBSD ports 7.6:                codemadness.org        70
           76 hhttps://cvsweb.openbsd.org/ports/sysutils/usmb/patches        URL:https://cvsweb.openbsd.org/ports/sysutils/usmb/patches        codemadness.org        70
           77 i                codemadness.org        70
           78 iBelow is a summary of the most important changes:                codemadness.org        70
           79 i                codemadness.org        70
           80 i                codemadness.org        70
           81 i## Performance                codemadness.org        70
           82 i                codemadness.org        70
           83 i* Set struct stat st.st_blksiz to a higher number for more efficient buffering                codemadness.org        70
           84 i  for programs using the standard FILE* stdio interfaces. Huge improvement for                codemadness.org        70
           85 i  reads and writes.                  codemadness.org        70
           86 i  On OpenBSD the default block size for FUSE is 512 bytes.                codemadness.org        70
           87 i  This crippled network performance.                  codemadness.org        70
           88 i  On OpenBSD there is no FUSE caching layer (at time of writing 2025-09-07), so                codemadness.org        70
           89 i  each read call had more overhead.                codemadness.org        70
           90 i* Remove the hardcoded FUSE mount option max_read=N.                  codemadness.org        70
           91 i  This crippled network performance.                codemadness.org        70
           92 i                codemadness.org        70
           93 i                codemadness.org        70
           94 i## Security                codemadness.org        70
           95 i                codemadness.org        70
           96 i* Many code simplifications and deletions (reducing attack surface and makes it                codemadness.org        70
           97 i  easier to review).                codemadness.org        70
           98 i* Use unveil(2) syscall to lock down much of the filesystem except the                codemadness.org        70
           99 i  mountpoint and required FUSE devices.                codemadness.org        70
          100 i* Optional privilege dropping support: on OpenBSD FUSE would need to run as root:                codemadness.org        70
          101 i  (sysctl kern.usermount was removed around July 2016, around                codemadness.org        70
          102 i  commit 65c8a8a0394483b41de8f02c862e65fb529cf538).                  codemadness.org        70
          103 i  After mounting the filesystem and acquiring access to the FUSE driver                codemadness.org        70
          104 i  privileges are dropped. This is not perfect, but at least now the Samba smbclient                codemadness.org        70
          105 i  code runs as a user again.                codemadness.org        70
          106 i* Reading the password from the terminal in a secure way using readpassphrase(3).                codemadness.org        70
          107 i                codemadness.org        70
          108 i                codemadness.org        70
          109 i## Cleanups                codemadness.org        70
          110 i                codemadness.org        70
          111 i* Merge everything into one C file for easier code review.                codemadness.org        70
          112 i* Remove Samba < 3.3 compatibility layer and code. This is hard to test                codemadness.org        70
          113 i  nowadays anyway.                codemadness.org        70
          114 i* Use getopt for option parsing: remove dependencies on glib which was used for                codemadness.org        70
          115 i  option parsing only.                codemadness.org        70
          116 i* Remove long option support.                codemadness.org        70
          117 i* Remove libxml2 dependency and configuration via XML. Configuration is now                codemadness.org        70
          118 i  done via a simpler syntax as a URI from the command-line. This was also                codemadness.org        70
          119 i  listed in the man page under the BUGS section as a wanted feature.                codemadness.org        70
          120 i* Remove autoconf and Debian-specific packaging files. Use a simple Makefile.                codemadness.org        70
          121 i* Man page rewritten from roff to mandoc.                codemadness.org        70
          122 i                codemadness.org        70
          123 i                codemadness.org        70
          124 i## OpenBSD port added as sysutils/susmb                codemadness.org        70
          125 i                codemadness.org        70
          126 iAn OpenBSD port was added to sysutils/susmb (thanks to Pascal Stumpf!).                codemadness.org        70
          127 i                codemadness.org        70
          128 hMailinglist thread: »https://marc.info/?l=openbsd-ports&m=177169411929407&w=2«        URL:https://marc.info/?l=openbsd-ports&m=177169411929407&w=2        codemadness.org        70
          129 .