Samba Magic Script

Eine Kurzanleitung

 

ACHTUNG! Das Schreibrecht auf ein Magic-Share kommt einem Shellaccount gleich!

Samba Magic Script ermöglicht es, die Ausführung von Unix-Kommandos auf dem Samba-Host von einer Client-Arbeitsstation aus zu initiieren. Zu diesem Zweck wird ein Script in einem Samba-Share geschlossen. Samba führt das Script aus und löscht es dann.

Das Script muß ohne weitere Veränderungen ausführbar sein. Es darf also auch keine DOS-spezifischen Zeilenschaltungen (CR-LF) enthalten, sollte also deshalb auf dem Samba-Host erstellt und getestet und anschließend nicht mehr verändert werden.

Beispiel (magic.sh):

#!/bin/bash
echo "Test"
echo "Root-Test">/magic-root.out

Da kein anderer Wert angegeben ist, wird die Ausgabe der ersten Zeile in eine Datei namens "magic.sh.out" im aktuellen Verzeichnis (dem, in dem das Script geschlossen wird) geschrieben. Die Ausgabe der zweiten Zeile erscheint in "/magic-root.out", falls das Script mit root-Rechten ausgeführt wurde.

Um das Beispiel auszuführen, benötigt man ein Share mit entsprechenden Einstellungen:

[magic]
          comment = Test fuer Magic Script
          path = /usr/lib/smb/magic
          valid users = wp
          admin users = wp
          write list = wp
          writeable = Yes
          create mask = 0777
          magic script = magic.sh

Nutzer wp agiert in diesem Share als root. Neue Dateien werden in jedem Fall als ausführbar gekennzeichnet.

Um das Script auszuführen, wird die das Script enthaltende Datei mit dem Windows-Explorer in ein Unterverzeichnis des Shares (Samba-Bug) kopiert (anlegen-schreiben-schließen). Samba führt das Script aus und löscht es dann.

Wenn der Pfad zur Scriptdatei z.B. \\cronos\wp\magic.sh lautet und die Ausführung in \\cronos\magic\sub erfolgen soll, kann man das z.B. mit einer Verknüpfung auf dem Windows-Desktop erreichen, die folgende Kommandozeile beinhaltet:

C:\WINDOWS\COMMAND.COM /ccopy \\cronos\wp\magic.sh \\cronos\magic\sub

Literatur:
man 5 smb.conf
http://www.vamos.de/english/sambamagictray.html