smrsh program is intended as a replacement for
sh for use in the prog mailer in
It sharply limits the commands that can be run using the
|program syntax of
sendmail in order to improve the over all security of your system.
Briefly, even if a bad guy can get sendmail to run a program
without going through an alias or forward file,
smrsh limits the set of programs that he or she can execute.
smrsh limits programs to be in a single directory,
allowing the system administrator to choose the set of acceptable commands,
and to the shell builtin commands exec, exit, and echo.
It also rejects any commands with the characters
`, <, >, ;, $, (, ), \r (carriage return),
or \n (newline)
on the command line to prevent end run attacks.
It allows || and && to enable commands like:
"|exec /usr/local/bin/filter || exit 75"
Initial pathnames on programs are stripped,
so forwarding to /usr/bin/vacation,
all actually forward to
System administrators should be conservative about populating
the sm.bin directory.
For example, a reasonable additions is
and the like.
No matter how brow-beaten you may be,
never include any shell or shell-like program
Note that this does not restrict the use of shell or perl scripts
in the sm.bin directory (using the #! syntax);
it simply disallows execution of arbitrary programs.
Also, including mail filtering programs such as
is a very bad idea.
allows users to run arbitrary programs in their