smrsh.8
上传用户:xu_441
上传日期:2007-01-04
资源大小:1640k
文件大小:3k
源码类别:

Email客户端

开发平台:

Unix_Linux

  1. ." Copyright (c) 1998, 1999 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.11 1999/06/09 16:51:07 ca Exp $
  13. ."
  14. .TH SMRSH 8 11/02/93
  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 the directory
  41. /usr/adm/sm.bin,
  42. allowing the system administrator to choose the set of acceptable commands,
  43. and to the shell builtin commands ``exec'', ``exit'', and ``echo''.
  44. It also rejects any commands with the characters
  45. ``', `<', `>', `;', `$', `(', `)', `er' (carriage return),
  46. or `en' (newline)
  47. on the command line to prevent ``end run'' attacks.
  48. It allows ``||'' and ``&&'' to enable commands like:
  49. ``"|exec /usr/local/bin/procmail -f- /etc/procmailrcs/user || exit 75"''
  50. .PP
  51. Initial pathnames on programs are stripped,
  52. so forwarding to ``/usr/ucb/vacation'',
  53. ``/usr/bin/vacation'',
  54. ``/home/server/mydir/bin/vacation'',
  55. and
  56. ``vacation''
  57. all actually forward to
  58. ``/usr/adm/sm.bin/vacation''.
  59. .PP
  60. System administrators should be conservative about populating
  61. /usr/adm/sm.bin.
  62. Reasonable additions are
  63. .IR vacation (1),
  64. .IR procmail (1),
  65. and the like.
  66. No matter how brow-beaten you may be,
  67. never include any shell or shell-like program
  68. (such as
  69. .IR perl (1))
  70. in the
  71. sm.bin
  72. directory.
  73. Note that this does not restrict the use of shell or perl scripts
  74. in the sm.bin directory (using the ``#!'' syntax);
  75. it simply disallows execution of arbitrary programs.
  76. .SH COMPILATION
  77. Compilation should be trivial on most systems.
  78. You may need to use -DPATH=e"fIpathfPe"
  79. to adjust the default search path
  80. (defaults to ``/bin:/usr/bin:/usr/ucb'')
  81. and/or -DCMDBIN=e"fIdirfPe"
  82. to change the default program directory
  83. (defaults to ``/usr/adm/sm.bin'').
  84. .SH FILES
  85. /usr/adm/sm.bin - directory for restricted programs
  86. .SH SEE ALSO
  87. sendmail(8)