[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Suexec testen



On Sun, Sep 01, 2002 at 05:55:46PM +0200, Jochen Kächelin wrote:
> Wie kann ich denn testen, ob mein suexec richtig konfiguriert ist!
> Eigentlich  soll  suexec  ja  verhindern,  dass kunde a perl-scripte
> unter  der Kennung des Kunden b alaufen lassen kann, um somit keinen
> Schaden anzurichten, gelle?

Eher so, daß Scripte des Kunden B unter der Kennung von B ablaufen.
Ein kleiner Testscript:

#! /bin/sh
# (c) 2002 Heiko Schlittermann <hs@schlittermann.de>
#
# Diesen Script einfach installieren als test.cgi
# oder cgi-bin/test oder cgi-bin/test.sh, je nach dem, was der 
# jeweilige Provider gerne sehen wuerde ...
# Und dann aufrufen: 
#   http://www.irgendwo.de/test.cgi
# oder entsprechend des Installationsortes
#   http://www.irgendwo.de/cgi-bin/test
#

PERL_MODULES="CGI CGI::Carp Mail::Mailer DBI DBD::mysql \
    Date::Calc Digest::MD5"

PROGRAMS="perl sendmail date env php php3 php4 ls"
PATH="/usr/bin:$PATH:/usr/sbin"
TOP="[ <a href=#top>top</a> ]"

cat <<xxx
Content-Type: text/html

<html><head>
<title>CGI-Test</title>
</head>
<body bgcolor=white>
[ <a href=#env>Environment</a> ]&nbsp;
[ <a href="#perl">perl</a> ]&nbsp;
[ <a href="#perl.modules">perl modules</a> ]&nbsp;
<h1>Welcome from $REMOTE_ADDR</h1>
<table>
    <tr><th align=right>UID</th><td>$(id -un)</td></tr>
    <tr><th align=right>GID</th><td>$(id -gn)</td></tr>
    <tr><th align=right>Current Directory</th><td>$(pwd)</td></tr>
xxx

for prog in $PROGRAMS; do
    echo "<tr><th align=right>$prog</th><td>`type -p $prog`</td></tr>"
done

cat <<xxx
</table>

<a name=env><h3>$TOP Environment</h3></a>
<table>
`export|sort|sed 's/declare -x //'|sed 's,=,</th><td>,;s,^,<tr><th align=right>,;s,$,</td></tr>,'`
</table>
</body>

<a name=perl><h3>$TOP Perl</h3></a>

<pre>
`perl -V`
</pre>

<a name=perl.modules><h4>$TOP Perl Modules</h4></a>

xxx

#echo '<table><tr><th align="right">Modul</th><th align="left">Version</th></tr>'
echo '<table>'
for module in $PERL_MODULES; do
    echo "<tr><th align=right>$module</th><td>" 
    perl -M$module -e "print \"\$$module::VERSION\n\";" || echo "NONE"
    echo "</td></tr>"
done
echo '</table>'

echo "</html>"




Reply to: