summaryrefslogtreecommitdiff
path: root/contrib/sendmail/smrsh/README
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/sendmail/smrsh/README')
-rw-r--r--contrib/sendmail/smrsh/README156
1 files changed, 0 insertions, 156 deletions
diff --git a/contrib/sendmail/smrsh/README b/contrib/sendmail/smrsh/README
deleted file mode 100644
index 7e22f86bd8f5b..0000000000000
--- a/contrib/sendmail/smrsh/README
+++ /dev/null
@@ -1,156 +0,0 @@
-
-README smrsh - sendmail restricted shell.
-
-This README file is provided as a courtesy of the CERT Coordination Center,
-Software Engineering Institute, Carnegie Mellon University. This file is
-intended as a supplement to the CERT advisory CA-93:16.sendmail.vulnerability,
-and to the software, smrsh.c, written by Eric Allman.
-
-
-
-The smrsh(8) program is intended as a replacement for /bin/sh in the
-program mailer definition of sendmail(8). This README file describes
-the steps needed to compile and install smrsh.
-
-smrsh is a restricted shell utility that provides the ability to
-specify, through a configuration, an explicit list of executable
-programs. When used in conjunction with sendmail, smrsh effectively
-limits sendmail's scope of program execution to only those programs
-specified in smrsh's configuration.
-
-smrsh has been written with portability in mind, and uses traditional
-Unix library utilities. As such, smrsh should compile on most
-Unix C compilers.
-
-smrsh should build on most systems with the enclosed Build script:
-
- host.domain% sh Build
-
-To compile smrsh.c by hand, use the following command:
-
- host.domain% cc -o smrsh smrsh.c
-
-For machines that provide dynamic linking, it is advisable to compile
-smrsh without dynamic linking. As an example with the Sun Microsystems
-compiler, you should compile with the -Bstatic option.
-
- host.domain% cc -Bstatic -o smrsh smrsh.c
- or
- host.domain% sh Build LDOPTS=-Bstatic
-
-With gcc, the GNU C compiler, use the -static option.
-
- host.domain% cc -static -o smrsh smrsh.c
- or
- host.domain% sh Build LDOPTS=-static
-
-
-
-As root, install smrsh in /usr/libexec. Using the Build script:
-
- host.domain# sh Build install
-
-For manual installation: install smrsh in the /usr/libexec
-directory, with mode 511.
-
- host.domain# mv smrsh /usr/libexec
- host.domain# chmod 511 /usr/libexec/smrsh
-
-
-
-Next, determine the list of commands that smrsh should allow sendmail
-to run. This list of allowable commands can be determined by:
-
- 1. examining your /etc/mail/aliases file, to indicate what commands
- are being used by the system.
-
- 2. surveying your host's .forward files, to determine what
- commands users have specified.
-
-See the man page for aliases(5) if you are unfamiliar with the format of
-these specifications. Additionally, you should include in the list,
-popular commands such as /usr/ucb/vacation.
-
-You should NOT include interpreter programs such as sh(1), csh(1),
-perl(1), uudecode(1) or the stream editor sed(1) in your list of
-acceptable commands.
-
-If your platform doesn't have a default SMRSH_CMDDIR setting, you will
-next need to create the directory /usr/adm/sm.bin and populate
-it with the programs that your site feels are allowable for sendmail
-to execute. This directory is explicitly specified in the source
-code for smrsh, so changing this directory must be accompanied with
-a change in smrsh.c.
-
-
-You will have to be root to make these modifications.
-
-After creating the /usr/adm/sm.bin directory, either copy the programs
-to the directory, or establish links to the allowable programs from
-/usr/adm/sm.bin. Change the file permissions, so that these programs
-can not be modified by non-root users. If you use links, you should
-ensure that the target programs are not modifiable.
-
-To allow the popular vacation(1) program by creating a link in the
-/usr/adm/sm.bin directory, you should:
-
- host.domain# cd /usr/adm/sm.bin
- host.domain# ln -s /usr/ucb/vacation vacation
-
-
-
-
-After populating the /usr/adm/sm.bin directory, you can now configure
-sendmail to use the restricted shell. Save the current sendmail.cf
-file prior to modifying it, as a prudent precaution.
-
-Typically, the program mailer is defined by a single line in the
-sendmail configuration file, sendmail.cf. This file is traditionally
-found in the /etc, /usr/lib or /etc/mail directories, depending on
-the UNIX vendor.
-
-If you are unsure of the location of the actual sendmail configuration
-file, a search of the strings(1) output of the sendmail binary, will
-help to locate it.
-
-In order to configure sendmail to use smrsh, you must modify the Mprog
-definition in the sendmail.cf file, by replacing the /bin/sh specification
-with /usr/libexec/smrsh.
-
-As an example:
-
-In most Sun Microsystems' sendmail.cf files, the line is:
-Mprog, P=/bin/sh, F=lsDFMeuP, S=10, R=20, A=sh -c $u
-
-which should be changed to:
-Mprog, P=/usr/libexec/smrsh, F=lsDFMeuP, S=10, R=20, A=sh -c $u
- ^^^^^^^^^^^^^^^^^^
-
-A more generic line may be:
-Mprog, P=/bin/sh, F=lsDFM, A=sh -c $u
-
-and should be changed to;
-Mprog, P=/usr/libexec/smrsh, F=lsDFM, A=sh -c $u
-
-
-After modifying the Mprog definition in the sendmail.cf file, if a frozen
-configuration file is being used, it is essential to create a new one.
-You can determine if you need a frozen configuration by discovering
-if a sendmail.fc file currently exists in either the /etc/, /usr/lib,
-or /etc/mail directories. The specific location can be determined using
-a search of the strings(1) output of the sendmail binary.
-
-In order to create a new frozen configuration, if it is required:
- host.domain# /usr/lib/sendmail -bz
-
-Now re-start the sendmail process. An example of how to do this on
-a typical system follows:
-
- host.domain# cat /var/run/sendmail.pid
- 130
- /usr/sbin/sendmail -bd -q30m
- host.domain# /bin/kill -15 130
- host.domain# /usr/sbin/sendmail -bd -q30m
-
-
-$Revision: 8.8 $, Last updated $Date: 2001/01/24 00:05:58 $