The following options deal with magic scripts on the Samba server. Magic scripts are a method of running programs on Unix and redirecting the output back to the SMB client. These are essentially an experimental hack. However, some users and their programs still rely on these two options for their programs to function correctly. Magic scripts are not widely trusted and their use is highly discouraged by the Samba team. See Table 8.2 for more information.
Option | Parameters | Function | Default | Scope |
---|---|---|---|---|
| Sets the name of a file to be executed by Samba, as the logged-on user, when closed. | None | Share | |
| string (fully-qualified filename) | Sets a file to log output from the magic file. | scriptname.out | Share |
If the magic
script
option is set to a filename and the client creates a file by that name in that share, Samba will run the file as soon as the user has opened and closed it. For example, let's assume that the following option was created in the share [accounting]
:
[accounting] magic script = tally.sh
Samba continually monitors the files in that share. If one by the name of tally.sh is closed (after being opened) by a user, Samba will execute the contents of that file locally. The file will be passed to the shell to execute; it must therefore be a legal Unix shell script. This means that it must have newline characters as line endings instead of Windows CR/LFs. In addition, it helps if you use the #!
directive at the beginning of the file to indicate under which shell the script should run.
This option specifies an output file that the script specified by the magic
script
option will send output to. You must specify a filename in a writable directory:
[accounting] magic script = tally.sh magic output = /var/log/magicoutput
If this option is omitted, the default output file is the name of the script (as stated in the magic
script
option) with the extension .out appended onto it.