home | help
SMRSH(8)		     System Manager's Manual			SMRSH(8)

NAME
     smrsh - restricted shell for sendmail

SYNOPSIS
     smrsh -c command

DESCRIPTION
     The  smrsh  program  is  intended	as  a  replacement for sh for use in the
     ``prog'' mailer in sendmail(8) configuration files.  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.

     Briefly,  smrsh  limits  programs	to  be in a single directory, by default
     /usr/libexec/sm.bin, 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/procmail  -f-  /etc/proc-
     mailrcs/user || exit 75"''

     Initial pathnames on programs are stripped, so forwarding to ``/usr/bin/va-
     cation'',	``/home/server/mydir/bin/vacation'',  and ``vacation'' all actu-
     ally forward to ``/usr/libexec/sm.bin/vacation''.

     System administrators should be conservative about  populating  the  sm.bin
     directory.   Reasonable  additions  are  vacation(1),  procmail(1), and the
     like.  No matter how brow-beaten you may be, never  include  any  shell  or
     shell-like  program  (such  as perl(1)) in the sm.bin directory.  Note that
     this does not restrict the use of shell or perl scripts in the  sm.bin  di-
     rectory  (using  the ``#!'' syntax); it simply disallows execution of arbi-
     trary programs.

COMPILATION
     Compilation should be trivial  on	most  systems.	 You  may  need  to  use
     -DSMRSH_PATH=\"path\"  to	adjust	the  default  search  path  (defaults to
     ``/bin:/usr/bin'') and/or -DSMRSH_CMDDIR=\"dir\" to change the default pro-
     gram directory (defaults to ``/usr/libexec/sm.bin'').

FILES
     /usr/libexec/sm.bin - directory for restricted programs

SEE ALSO
     sendmail(8)

			  $Date: 2001/01/24 00:40:47 $			SMRSH(8)

home | help