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