Merge from vendor branch LIBSTDC++:
[dragonfly.git] / contrib / sendmail / smrsh / smrsh.8
1 .\" Copyright (c) 1998-2001 Sendmail, Inc. and its suppliers.
2 .\"      All rights reserved.
3 .\" Copyright (c) 1993 Eric P. Allman.  All rights reserved.
4 .\" Copyright (c) 1993
5 .\"     The Regents of the University of California.  All rights reserved.
6 .\"
7 .\" By using this file, you agree to the terms and conditions set
8 .\" forth in the LICENSE file which can be found at the top level of
9 .\" the sendmail distribution.
10 .\"
11 .\"
12 .\"     $Id: smrsh.8,v 8.16.2.1 2003/07/08 01:33:03 gshapiro Exp $
13 .\"
14 .TH SMRSH 8 "$Date: 2003/07/08 01:33:03 $"
15 .SH NAME
16 smrsh \- restricted shell for sendmail
17 .SH SYNOPSIS
18 .B smrsh
19 .B \-c
20 command
21 .SH DESCRIPTION
22 The
23 .I smrsh
24 program is intended as a replacement for
25 .I sh
26 for use in the ``prog'' mailer in
27 .IR sendmail (8)
28 configuration files.
29 It sharply limits the commands that can be run using the
30 ``|program'' syntax of
31 .I sendmail
32 in order to improve the over all security of your system.
33 Briefly, even if a ``bad guy'' can get sendmail to run a program
34 without going through an alias or forward file,
35 .I smrsh
36 limits the set of programs that he or she can execute.
37 .PP
38 Briefly,
39 .I smrsh
40 limits programs to be in a single directory,
41 by default
42 /usr/libexec/sm.bin,
43 allowing the system administrator to choose the set of acceptable commands,
44 and to the shell builtin commands ``exec'', ``exit'', and ``echo''.
45 It also rejects any commands with the characters
46 `\`', `<', `>', `;', `$', `(', `)', `\er' (carriage return),
47 or `\en' (newline)
48 on the command line to prevent ``end run'' attacks.
49 It allows ``||'' and ``&&'' to enable commands like:
50 ``"|exec /usr/local/bin/filter || exit 75"''
51 .PP
52 Initial pathnames on programs are stripped,
53 so forwarding to ``/usr/bin/vacation'',
54 ``/home/server/mydir/bin/vacation'',
55 and
56 ``vacation''
57 all actually forward to
58 ``/usr/libexec/sm.bin/vacation''.
59 .PP
60 System administrators should be conservative about populating
61 the sm.bin directory.
62 For example, a reasonable additions is
63 .IR vacation (1),
64 and the like.
65 No matter how brow-beaten you may be,
66 never include any shell or shell-like program
67 (such as
68 .IR perl (1))
69 in the
70 sm.bin
71 directory.
72 Note that this does not restrict the use of shell or perl scripts
73 in the sm.bin directory (using the ``#!'' syntax);
74 it simply disallows execution of arbitrary programs.
75 Also, including mail filtering programs such as
76 .IR procmail (1)
77 is a very bad idea.
78 .IR procmail (1)
79 allows users to run arbitrary programs in their
80 .IR procmailrc (5).
81 .SH COMPILATION
82 Compilation should be trivial on most systems.
83 You may need to use \-DSMRSH_PATH=\e"\fIpath\fP\e"
84 to adjust the default search path
85 (defaults to ``/bin:/usr/bin'')
86 and/or \-DSMRSH_CMDDIR=\e"\fIdir\fP\e"
87 to change the default program directory
88 (defaults to ``/usr/libexec/sm.bin'').
89 .SH FILES
90 /usr/libexec/sm.bin \- directory for restricted programs
91 .SH SEE ALSO
92 sendmail(8)
93 .\" $FreeBSD: src/contrib/sendmail/smrsh/smrsh.8,v 1.3.6.5 2002/09/03 01:50:13 gshapiro Exp $
94 .\" $DragonFly: src/contrib/sendmail/smrsh/Attic/smrsh.8,v 1.3 2003/12/22 04:04:23 drhodus Exp $