Smbnetfs ist ein Userspace Dateisystem mit dem transparent und User-bezogen Windows-Freigaben eingebunden werden können.
Zwar gibt es verschiedene Möglichkeiten, Windows-Freigaben in Linux-Desktops einzubinden, aber die meisten haben ihre Nachteile:
Eine Lösung stellt smbnetfs dar, das Windows-Freigaben im User-Space mountet - und auch von den Nutzer_innen persönlich verwaltet werden kann. Der Nachteil: es kommt nicht mit einer grafischen Konfigurationsmöglichkeit daher.
Nach Installation mit
apt-get install smbnetfs
Und der Zugehörigkeit in der fuse-Gruppe
adduser USERNAME fuse
lassen sich mit dem einfachen Befehl
smbnetfs ./mountpoint
Windows-Freigaben mounten. Das Tool erwartet eine Konfigurationsdatei unter .smb/smbnetfs.conf. Im einfachsten Fall sieht diese so aus:
auth SERVER "USERNAME" "PASSWORT"
In diesem Fall versucht smbnetfs alle Server über netbios zu suchen/finden - und für den Server „SERVER“ sich mit den angegebenen Credentials zu authentifizieren. Für unterschiedliche Server sind mehrere Zeilen möglich.
Soll lediglich ein Server eingebunden werden (und/oder funktioniert aufgrund von Firewall-Regeln (oder Routing) netbios nicht richtig) kann folgendes konfiguriert werden:
# Passwort den SERVER auth SERVER "user" "password" # wir wollen explizit Shares von folgenden Hosts einbinden host SERVER visible=true # Wir wollen keine anderen Hosts browsen: smb_query_browsers "false" # wenn das Share verstekct ist, trotzdem zeigen: show_hidden_hosts "true"
Die smbnetfs.conf muss die Rechte 600 haben, wenn dort Passwörter referenziert werden, sonst verweigert sich smbnetfs. Die Konfigurationsdateien können auch mit include-Direktiven gesplittet werden - bspw. in eine smbnetfs.aut und smbnetfs.host.
Unter /etc/smbnetfs.conf liegt eine Default-Datei. Diese scheint aber bei Abwesenheit einer User spezifischen Konfiguration nicht genutzt zu werden, sondern dient nur als Beispiel für die Konfiguration. Außerdem soll smbnetfs auch auf eine vorhandene /etc/samba/smb.conf oder eine smb.conf im ~/.smb Verzeichnis zurückgreifen. Welche Parameter daraus gelesen werden, wird aus der Dokumentation aber nicht klar.
Am einfachsten ist das Mounten über die .profile im User-Verzeichnis.
# smbnetfs /usr/local/bin/sambausermount.sh start
z.B. mit folgendem Skript beim Login zu mounten:
#!/bin/bash SMBMOUNTDIR=~/samba test -d $SMBMOUNTDIR || mkdir $SMBMOUNTDIR case "$1" in start) # nur mounten, wenn's noch nicht passiert ist sonst beenden mount | grep $USER | grep -q smbnetfs && exit 0 # Teste auf Vorhandensein von Konfiguration if ! test -e ~/.smb/smbnetfs.conf; then zenity --info --text "Keine Konfigurationsdatei für das Einbinden von Samba-Verzeichnissen gefunden. Bitte prüfe, ob ~/.smb/smbnetfs.conf existiert oder wende dich vertrauensvoll an deinen Administrator" exit 0 fi if ! grep -q ^auth .smb/smbnetfs.conf; then #zenity --info --text "Du musst noch dein Passwort in deiner Konfigurationsdatei für die Windows-Freigaben konfigurieren. Die Datei wird jetzt geöffnet. Bitte editieren und speichern." pluma ~/.smb/smbnetfs.conf /usr/bin/smbnetfs $SMBMOUNTDIR else /usr/bin/smbnetfs $SMBMOUNTDIR fi ;; stop) # nur was tun, wenn's gemountet ist. mount |grep $USER | grep smbnetfs || exit 0 /bin/fusermount -u $SMBMOUNTDIR ;; esac
In der .bash_logout könnte dann entsprechend stehen:
# smbnetfs /usr/local/bin/sambausermount.sh stop
Das funktioniert so lange nur eine Login-Shell geöffnet, bzw. in diesem Fall: geschlossen wird. Das ist bei grafischen Oberflächen der Fall, einzelne grafische Terminals öffnen keine Login-Shells - und rufen auch die .bash_logout beim Schließen entsprechend nicht auf.
Alternativ kann auch in der Desktop-Umgebung die entsprechende Befehlszeile als Autostart konfiguriert werden. Z.B. einfach:
smbnetfs samba
Allerdings funktioniert das automatische Aushängen beim Logout nicht - und das Share bleibt bis zum nächsten Reboot gemountet.
smbnetfs kann auch auf auf die Verbindungsinformationen, die im gnome-keyring gespeichert sind, zurück greifen. In diesem Fall kann auf die auth-Zeile in der smbnetfs.conf verzichtet werden - bzw. das Passwort kann leer gelassen werden.
Voraussetzung ist, dass die Samba-Freigabe schon einmal über den Gnome- oder Mate-Filemanager eingebunden wurde (als gvfs) und im Gnome-Keyring entsprechende Credentials existieren.
Die Konfigurationsmöglichkeiten finden sich hier:
Und eine Anleitung im Ubuntu-Wiki: