summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2004-04-20 16:12:49 +0000
committerNicholas Clark <nick@ccl4.org>2004-04-20 16:12:49 +0000
commit18b810caba1ff3a8890bc392e4295393205e4c8e (patch)
tree61de57faa129093040f775a7dde7af1c41a482ad
parentcc5f7b51347dc0d99d849e19d8755fc160395010 (diff)
downloadperl-18b810caba1ff3a8890bc392e4295393205e4c8e.tar.gz
Simpler suggstion to resolve the #!/usr/bin/suidperl vs. the set uid
binary must have fd script conundrum, as suggested by Brendan O'Dea Plus restore the more helpful error message from 22694 and the gist of the perl584delta changes from 22700 p4raw-id: //depot/maint-5.8/perl@22720
-rwxr-xr-xinstallperl2
-rw-r--r--perl.c5
-rw-r--r--pod/perl584delta.pod20
3 files changed, 17 insertions, 10 deletions
diff --git a/installperl b/installperl
index 834a51e39e..a3e698bec3 100755
--- a/installperl
+++ b/installperl
@@ -457,7 +457,7 @@ if (! $versiononly && ! samepath($installbin, '.') && ($^O ne 'dos') && ! $Is_VM
link("$installbin/$perl_verbase$ver$exe_ext",
"$installbin/$perl$exe_ext");
}
- link("$installbin/s$perl_verbase$ver$exe_ext",
+ link("$installbin/$perl_verbase$ver$exe_ext",
"$installbin/suid$perl$exe_ext")
if $d_dosuid;
}
diff --git a/perl.c b/perl.c
index 3a3371e2e6..94affdaa6e 100644
--- a/perl.c
+++ b/perl.c
@@ -3111,7 +3111,10 @@ S_open_script(pTHX_ char *scriptname, bool dosearch, SV *sv)
}
#ifdef IAMSUID
else {
- Perl_croak(aTHX_ "suidperl needs fd script\n");
+ Perl_croak(aTHX_ "sperl needs fd script\n"
+ "You should not call sperl directly; do you need to "
+ "change a #! line\nfrom sperl to perl?\n");
+
/* PSz 11 Nov 03
* Do not open (or do other fancy stuff) while setuid.
* Perl does the open, and hands script to suidperl on a fd;
diff --git a/pod/perl584delta.pod b/pod/perl584delta.pod
index 697225204a..87ebeb8a10 100644
--- a/pod/perl584delta.pod
+++ b/pod/perl584delta.pod
@@ -25,9 +25,6 @@ such as newline and backspace are output in C<\x> notation, rather than
octal. This might just confuse non-robust tools which parse the output of
modules such as Devel::Peek.
-You may no longer invoke suidperl directly; any script which uses
-#!/usr/bin/suidperl should be changed to use #!/usr/bin/perl.
-
=head1 Core Enhancements
=head2 Malloc wrapping
@@ -49,11 +46,18 @@ been updated to 4.0.1 from 4.0.0.
=head2 suidperl less insecure
Paul Szabo has analysed and patched C<suidperl> to remove existing known
-insecurities. Currently there are no known holes in C<suidperl>, but
-previous experience shows that we cannot be confident that these were the
-last. For new projects the core perl team would strongly recommend that you
-use dedicated, single purpose security tools such as C<sudo> in preference
-to C<suidperl>.
+insecurities. Currently there are no known holes in C<suidperl>, but previous
+experience shows that we cannot be confident that these were the last. You may
+no longer invoke the set uid perl directly, so to preserve backwards
+compatibility with scripts that invoke #!/usr/bin/suidperl the only set uid
+binary is now C<sperl5.8.>I<n> (C<sperl5.8.4> for this release). C<suidperl>
+is installed as a hard link to C<perl>; both C<suidperl> and C<perl> will
+invoke C<sperl5.8.4> automatically the set uid binary, so this change should
+be completely transparent.
+
+For new projects the core perl team would strongly recommend that you use
+dedicated, single purpose security tools such as C<sudo> in preference to
+C<suidperl>.
=head2 format