Temporäre Samba-Freigabe erstellen


9

Gibt es eine Möglichkeit, ein Verzeichnis vorübergehend pro Samba freizugeben ?

Mit Python 3 kann ich das aktuelle Verzeichnis per HTTP bedienen, indem ich :

python -m http.server.

Ich würde gerne dasselbe mit Samba machen .


Ist der net share addBefehl das, wonach Sie suchen?
Derobert

Oder möglicherweise net usershare...
derobert

Antworten:


1

Es scheint keine Möglichkeit zu geben, eine Ad-hoc-Freigabe zu erstellen, exportfswie dies unter NFS unter Linux und shareunter Solaris der Fall ist . Die Gründe können variieren, aber Sie können technisch etwas tun, wie auf der Seite zum Ausführen mehrerer Server auf demselben Computer beschrieben, und mit der benutzerdefinierten Funktion das smb.conferreichen, was Sie tun müssen.

Es gibt auch eine Option zum dynamischen Erstellen und Löschen von Freigaben mit SWAT , für die Änderungen an der smb.conf erforderlich sind , damit dies geschehen kann (siehe Abschnitte zu add share commandund)delete share command

Wenn Sie eine Freigabedynamik haben möchten, möchten Sie möglicherweise Ihr Home-Verzeichnis freigeben und dynamische Home-Freigaben über Samba verwenden, die an vielen Stellen diskutiert werden, einschließlich Ubuntu-Foren und Samba-Mailinglisten .


1

Abhängig davon, wie alt Ihr Samba-Daemon ist und welche Konfigurationsoptionen bei seiner Erstellung verwendet wurden, haben Sie möglicherweise weiterhin die Möglichkeit, eine "dynamische" Freigabe in Ihrer smb.conf zu definieren, die auf say / var / dynamic / verweist (siehe unten). und fügen Sie dann einfach einen symbolischen Link zu den Verzeichnissen hinzu, die Sie vorübergehend für das Verzeichnis freigeben möchten.

Für diesen Hack muss die Option für breite Links auf Ja gesetzt sein , damit Samba Links außerhalb des Freigabestamms folgen kann. Leider hat die Samba-Crew vor ein paar Jahren ihre Standardkonfiguration angepasst, um große Freigaben zu verhindern, da diese ausgenutzt werden könnten. Google für: Samba und "Wide Links" für die Geschichte und Workarounds.

[dynamic]
    comment = Somewhere to park dynamic shares 
    path = /var/dynamic
    read only = Yes
    inherit acls = Yes
    follow symlinks = yes
    wide links = yes

Ein schneller Test sollte sehen, ob Ihr zB gut ist

mkdir -p /var/dynamic/test
cd /var/dynamic
ln -s test a_link
ln -s /tmp/  tmp_test

0

Nehmen wir an, Sie möchten schnell einen Ordner für einen Benutzer freigeben, der vorübergehend schreibgeschützt ist.

Fügen Sie einen Systembenutzer hinzu:

useradd -r someuser

Oft ist der Ordner standardmäßig anders lesbar (überprüfen Sie mit ls -ld / somefolder), wenn Sie ihn erzwingen müssen:

chmod -R o+r /somefolder

Fügen Sie den Benutzer mit einem Passwort wie folgt zu Samba hinzu:

smbpasswd -a someuser

Bearbeiten Sie schnell die Datei smb.conf und fügen Sie sie unten hinzu

[someshare]
path = /somefolder
read list = someuser

Beenden, speichern und schließlich ausführen

smbcontrol smbd reload-config

et voila.

Natürlich möchten Sie möglicherweise den Abschnitt "someshare" entfernen, sobald Sie fertig sind, und den Befehl reload-config erneut ausführen.

Haftungsausschluss: Ich habe dies nicht vollständig getestet, aber ich war erstaunt, wie einfach die Antwort auf die Frage sein könnte. Sie können möglicherweise einige Schritte überspringen und direkt in die Bearbeitung von smb.conf eintauchen, wenn Sie bereits einen Benutzer mit vorhandenem Samba-Zugriff haben - genau das, was mir gerade begegnet ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.