Chrome OS: SMB Freigabe unter Linux Entwicklungsumgebung einbinden

Anknüpfend an meinen vorherigen Artikel (VS Code auf Chrome OS) möchte ich nun die Möglichkeit beschreiben, wie es gelingt eine SMB Freigabe in der Chrome OS Linux Entwicklungsumgebung einzubinden. Dies kann neben klassischem Datenaustausch etwa hilfreich beim nutzen eines Live-Code-Repositories sein um dieses beispielsweise via Microsoft VS Code anzubinden.

Was unter Linux eigentlich eine leichte Aufgabe ist, stellt sich in der Chrome OS Linux-Umgebung etwas aufwändiger dar. Auch wenn sich die unter Linux für diesen Zweck zur verfügstehenden „cifs-utils“ problemlos installieren lassen, so unterstützt der Kernel der ausgeführten Linux Distribution aufgrund des fehlenden CIFS-Moduls leider kein CIFS.

Auch das Teilen/Durchreichen eines im Chrome OS lokal eingerichteten Netzlaufwerks in die Linux VM konnte in diesem Fall nicht das gewünschte Ergebnis liefern. Die Verzeichnisse werden unter Linux bzw. in der entsprechenden Applikation leider immer falsch interpretiert und als leeres Verzeichnis dargeboten.

Weiterhelfen kann uns in diesem Fall jedoch das FUSE-Modul in Kombination mit SMBNETFS innerhalb der Linux VM.

Informationen zu FUSE: https://wiki.ubuntuusers.de/FUSE/

Informationen zu SMBNETFS: https://wiki.ubuntuusers.de/Samba_Client_SMBNetFS/

Installieren der Module

Als Erstes gilt es die benötigten Module zu installieren.

sudo apt install fuse smbnetfs


Im zweiten Schritt bereiten wir unsere Benutzerumgebung für FUSE vor. Die Systemvariable $USER wird automatisch durch den aktuell ausführenden Benutzer ersetzt.

Installationsprozess der Module FUSE und SMBNETFS

Anschließend legen wir eine neue Benutzergruppe „fuse“ an und fügen unseren aktuellen Benutzer hinzu.

sudo groupadd fuse
sudo gpasswd -a "$USER" fuse


Im dritten Schritt bereiten wir die nötigen Konfigurationsdateien und Pfade vor. Hierbei müssen „user“ sowie „password“ durch eigene Werte ersetzt werden [Zeile: 3]. Als User sollte der Benutzer angegeben werden, den wir für das autorisierte Anbinden der Freigabe benötigen. Binden wir eine Freigabe von einem Windows-basierten System das domänenintegriert ist, empfiehlt sich an dieser Stelle der UPN.

Anmerkung: Wie zu erkennen ist, arbeiten wir ausschließlich im Userspace.

mkdir ~/.smb
cp /etc/smbnetfs.conf ~/.smb/
echo "auth user password" > ~/.smb/smbnetfs.auth
chmod 600 ~/.smb/smbnetfs.auth
mkdir ~/shares
smbnetfs ~/shares


Im letzten Schritt binden wir die benötigte Freigabe unter dem erzeugen Pfad „~/shares“ ein. Hierbei müssen „server“ (Hostname, FQDN oder IP-Adresse) und „group“ wieder durch eigene Parameter ersetzt werden [Zeile: 1].

echo host server group visible=true > ~/.smb/smbnetfs.host
chmod 600 ~/.smb/smbnetfs.auth
fusermount -u ~/shares
smbnetfs ~/shares


Nun ist es möglich bspw. aus VS Code den entsprechenden Pfad anzubinden. Ein Zugriff auf etwaige Dateien in der Freigabe ist damit gegeben.

Einen kleinen Haken gibt es jedoch. Wie bereits erwähnt finden die Konfigurationen ausschließlich im Benutzerkontext statt. Zwar bleiben die erstellten Konfigurationsdateien logischerweise erhalten, jedoch muss nach jedem Neustart der VM bzw. des Chrome OS Gerätes das Modul mit dem erzeugten Pfad gestartet werden. Dieser Befehle kann jedoch auch in eine Startscript/Bash hinterlegt werden.

smbnetfs ~/shares


Ich selber sehe darin keinen Nachteil, da ich in der Regel nur von Unterwegs via Chromebook programmiere und hierzu muss ich sowieso zuvor einen VPN-Tunnel oder vergleichbare Verbindungen aufbauen um Zugriff auf die entsprechenden Server bzw. Freigaben zu erhalten.

Leon Gawinski

System Engineer Softwarebereich Microsoft

Empfohlene Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Schaltfläche "Zurück zum Anfang"