[[Vorlage(Getestet, focal, bionic) ]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] [:Samba: Samba - Überblick und Grundbegriffe] }}} [[Inhaltsverzeichnis()]] [[Bild(./samba4-logo.png, align=left,120)]] Mit dem Tool [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/NetCommand.html net] {en} stellt Samba [4] eine Sammlung von Befehlen zur Verfügung, mit denen Server in ähnlicher Weise wie mit dem gleichnamigen Windows-Tool administriert werden können. Die meisten der net-Befehle haben professionellen Charakter und interessieren nur die Administratoren größerer Netzwerke. Ihre Beschreibung würde hier zu weit führen (siehe dazu die [:Manpage:] zu '''net'''). Anders ist es mit `net usershare`, das auch standardmäßig von den Dateimanagern [:Nautilus:], [:Caja:], [:Dolphin:] und [:Konqueror:] zum Erstellen persönlicher Freigaben ohne Root-Rechte [3] verwendet wird. =Installation= Das Tool `net usershare` ist im Metapaket '''samba''' enthalten [1]: {{{#!vorlage Paketinstallation samba }}} Wenn `net usershare` mit dem Dateimanager Nautilus oder Caja verwendet werden soll, so ist eine Paketinstallation von Hand nicht nötig, da diese dann automatisch durchgeführt wird. = Anwendung = == Voraussetzungen == Damit gewöhnliche Benutzer ihre Dateien mit `net usershare` persönlich freigeben können, müssen sie der [:Benutzer und Gruppen:Gruppe] `sambashare` angehören. Für den Erstbenutzer ist dies in Ubuntu automatisch der Fall; später neu angelegte Benutzer müssen ggf. noch zu dieser Gruppe hinzugefügt werden. Da persönliche Freigaben ohne Root-Rechte[3] erstellt werden, ist die Zugehörigkeit zu einer der Gruppen `sudo` oder `admin` nicht nötig. Die Weiteren auf dem betreffenden Server gültigen Bedingungen für Samba-Freigaben allgemein und für `net usershare` im Besonderen werden in der Datei '''[:Samba Server/smb.conf:/etc/samba/smb.conf]''' festgelegt. Möchte man diese verändern, so muss man diese Datei mit Root-Rechten[3] editieren. Standardmäßig gelten für `net usershare` folgende Einstellungen: * Der Benutzer darf nur Dateien freigeben, deren Eigentümer er ist. * Der Eigentümer darf auch anderen den Zugriff auf eigene Freigaben gestatten. * Die Maximalzahl für persönliche Freigaben ist 100. * Persönliche Freigaben werden im Ordner '''/var/lib/samba/usershares''' eingetragen. Die aktuell gültigen Einstellungen kann man in einem Terminal[2] immer mit folgender Befehlszeile abrufen: {{{#!vorlage befehl testparm -vs | grep usershare }}} Für jeden Benutzer, der nachher mit Benutzername und ggf. Passwort auf eine Freigabe zugreifen soll, muss auf dem Server zusätzlich zum (vorhandenen) System-Account noch ein Samba-Account angelegt werden: {{{#!vorlage befehl sudo smbpasswd -a BENUTZERNAME }}} Benutzer ohne Samba-Passort und auch ganz unbekannte Benutzer können als Gäste zugreifen, sofern diese Vorgabe für den Samba-Server nicht verändert wurde. Der Zugriff auf das Dateisystem des Servers erfolgt dann mit dem für die Gastrolle konfigurierten Benutzernamen (Vorgabe: `nobody`) und beliebigem nichtleeren Passwort. == Anwendung mit dem Dateimanager == Die Anwendung mit den Dateimanagern [:Nautilus:] ([:GNOME:]) und [:Caja:] ([:MATE:]) ist im Artikel [:Samba Server GNOME:] ausführlich beschrieben. Bei Ubuntu 20.04 funktioniert es mit Nautilus wegen eines internen Fehlers nicht. Eine Alternative für [:Nautilus:] ist das Skript [:Nautilus/Skripte/SMBusershare:SMBusershare]. Die Dateimanager [:Thunar:] (Xfce) und [:PCManFM:] (LXDE) unterstützen bislang das interaktive Erstellen persönlicher Freigaben nicht (Stand: 05/2020), sodass hier auf die Kommandozeile zurückgegriffen werden muss. Bei Thunar können Kommandozeilen auch als ''Benutzerdefinierte Aktionen'' eingetragen und dann über Mausklicks wiederholt ausgeführt werden (siehe [:Samba Server GNOME:]) Das auch für Thunar geeignete Nautilus-Skript [:Nautilus/Skripte/SMBusershare:SMBusershare] ermöglicht die bequeme Freigabe per GUI als Alternative zur Arbeit auf der Kommandozeile. # Eine entsprechende Beschreibung für [:Dolphin:] und [:Konqueror:] findet sich im Artikel [:Archiv/Samba Server KDE#Einfache-Freigaben-mit-net-usershare:]. == Kommandozeile == Auf Samba-Servern ohne graphische Oberfläche oder in Xubuntu und Lubuntu, wo `net usershare` standardmäßig nicht vom Dateimanager unterstützt wird, können persönliche Freigaben sehr einfach über Kommandozeilen in der Konsole bzw. in einem Terminal[2] eingerichtet und verwaltet werden, ohne dass dafür eine Konfigurationsdatei editiert werden müsste. === Befehle === `net usershare` kennt folgende vier Kommandozeilen-Befehle: * Freigaben erstellen oder verändern: [[Vorlage (Befehl, "net usershare add [--long] SHARENAME PFAD [comment [acl] [guest_ok=[y|n]]]")]] * Freigaben aufheben: [[Vorlage (Befehl, "net usershare delete SHARENAME")]] * Vorhandene Freigaben auflisten: [[Vorlage (Befehl, "net usershare list [--long] [SHARENAME]")]] * Informationen über eine oder mehrere Freigaben ausgeben: [[Vorlage (Befehl, "net usershare info [--long] [SHARENAME]")]] Es gibt keinen besonderen Befehl, um vorhandene Freigaben zu verändern. Man überschreibt mit "`net usershare add`" einfach die bisherigen Eingaben mit den neuen. === Parameter === In eckigen Klammern `[]` angegebene Parameter sind optional. Stehen zwei oder mehr Alternativen zur Verfügung, so werden diese durch einen senkrechten Strich `|` getrennt angegeben. Groß- und Kleinbuchstaben werden beim SHARENAME nicht unterschieden. Im Einzelnen haben die Parameter folgende Bedeutungen: {{{#!vorlage Tabelle '''Parameter''' '''Syntaxdefinition''' '''Erklärung''' +++ `SHARENAME` Name der Freigabe. Besteht vorher schon eine allgemeine (in '''smb.conf''' eingetragene) Freigabe gleichen Namens, so wird diese "überdeckt". Bei den Befehlen `net usershare info` und `net usershare list` darf SHARENAME auch "Wildcards" enthalten (`*` für eine beliebige Zeichenkette, `?` für ein beliebiges Zeichen). +++ `PFAD` Vollständiger Pfad zur Freigabe auf dem Server. Zulässige bzw. verbotene Pfade können optional in der Datei '''smb.conf''' über die Optionen `usershare owner only`, `usershare prefix allow list` und `usershare prefix deny list` präzisiert werden. +++ `comment` Kommentar, der beim Browsen auf dem Client erscheint, Wenn nach PFAD weitere Parameter angegeben sind, wird der erste davon immer als Kommentar interpretiert. Kommentare, die Leerzeichen usw. enthalten, müssen in Anführungszeichen `" "` gesetzt werden. +++ `acl` `USERNAME:F|R|D` Legt fest, wer zugreifen darf. `F` bedeutet "full" (lesen und schreiben), `R` "read" (nur lesen) und `D` "deny" (gar nicht). Es sind auch mehrere, durch Kommas getrennte Angaben für `acl` möglich. Standard: `Everyone:R` +++ `guest_ok` `guest_ok=y|n` Gast-Zugriff erlauben oder verbieten. Ist nur wirksam, wenn in '''smb.conf''' die Option `usershare allow guests = y` eingetragen ist. Vorgabe: `guest_ok=n` +++ `--long` Bei `net usershare add` wird mit dieser Option die erzeugte Konfiguration zur Information ausgegeben. Bei `net usershare list` und `net usershare info` werden ohne diesen Parameter nur die eigenen Freigaben, mit diesem Parameter aber die Freigaben aller Benutzer angezeigt. Beachte: Diese Option kann __nicht__ zu `-l` abgekürzt werden obwohl der Hilfetext fälschlicherweise das behauptet! }}} {{{#!vorlage Hinweis Er ist nicht möglich, bei `net usershare add ...` den Kommentar (`comment`) einfach zu überspringen. Möchte man auf einen Kommentar verzichten, aber weitere Parameter angeben, so müssen anstelle eines Kommentars zwei Anführungszeichen (`""`) eingesetzt werden. }}} === Muster-Freigabe === Weitere Parameter können beim Erstellen von Freigaben mittels `net usershare` nicht angegeben werden. Jedoch lässt sich mit dem Eintrag "`usershare template share = SHARENAME`" im Teil `[global]` der Datei '''smb.conf''' eine bereits existierende Freigabe als Muster für ''alle'' mittels `net usershare` über die Kommandozeile oder über den Dateimanager eingerichteten Persönlichen Freigaben sämtlicher Benutzer festlegen. Von dieser Muster-Freigabe ("template share") werden dann alle übrigen Parameter übernommen. Anstelle einer bereits existierenden wirklichen Freigabe kann man auch eine besondere, "scheinbare" Muster-Freigabe einrichten, die man mit dem Parameter "`-valid = no`" unsichtbar und für direkte Zugriffe unerreichbar macht. === Beispiel === Eine Freigabe mit Gastzugriff, aber nur der Benutzer `otto` hat Schreibrechte: {{{#!vorlage Befehl net usershare add Urlaubsbilder /home/otto/Bilder/Urlaub Urlaubsbilder-2012 Everyone:R,otto:F guest_ok=y }}} Mit dem `info`-Befehl erhält der Benutzer `otto` dann folgende Ausgabe: {{{#!vorlage Befehl net usershare info *bilder }}} {{{ [Urlaubsbilder] path=/home/otto/Bilder/Urlaub comment=Urlaubsbilder-2012 usershare_acl=Everyone:R,DESKTOP-PC\otto:F, guest_ok=y }}} === Einträge im usershare-Ordner === Im Ordner '''/var/lib/samba/usershares''' findet man nach dem Erstellen dieser Freigabe eine dem Benutzer `otto` gehörende Textdatei '''urlaubsbilder''' mit folgendem Inhalt: {{{ #VERSION 2 path=/home/otto/Bilder/Urlaub comment=Urlaubsbilder-2012 usershare_acl=S-1-1-0:R,S-1-5-21-3836401370-419403397-2838479133-1000:F guest_ok=y sharename=Urlaubsbilder }}} Es wird davon abgeraten, Dateien in diesem Ordner zu editieren und zu verändern. Zum Bearbeiten persönlicher Freigaben sollte man nur die oben aufgeführten [#Befehle Kommandozeilen-Befehle] verwenden. =Links= == Intern == * [:Samba_Server:] - Grundsätzliches zum Einrichten eines Samba-Servers * [:Samba Server/smb.conf:] - Die zentrale Konfigurations-Datei für Samba * [:Samba Server GNOME:] - Konfigurieren eines Samba-Servers mit [:GNOME:], [:MATE:] oder [:Unity:] (Ubuntu) # * [:Archiv/Samba Server KDE:] - Konfigurieren eines Samba-Servers mit [:KDE:] (Kubuntu) == Extern == * [http://samba.org/ Projektseite] {en} * [http://samba.sernet.de/ Die deutsche Homepage des Samba Projektes] {de} (nicht aktuell) # tag: Netzwerk, Server