- Code: Select all
#!/usr/bin/perl -w
use strict;
###########################################################
# test.pl #
###########################################################
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<title> Test </title>\n";
print "</head>\n";
print "<!------------------------------------------------------>\n";
print "<body>\n";
print "<form action = 'test.pl'\n";
print " method = 'POST'>\n";
print "<input type = 'submit'\n";
print " value = 'Test'>\n";
###########################################################
$TST::HALLO = ">hallo.txt";
###########################################################
if (open (TST::HALLO))
{####################################################
print TST::HALLO "Hallo Welt\n";
close (TST::HALLO);
####################################################
print "<br>'hallo.txt' geschrieben\n";
}
else {####################################################
print "<br>'hallo.txt' laesst sich nicht oeffnen\n";
}
###########################################################
my $result = system ('chmod', '666', 'hallo.txt');
###########################################################
print "<br>result = $result\n";
###########################################################
print "</form>\n";
print "</body>\n";
print "</html>\n";
###########################################################
# test.pl #
###########################################################
Starte ich dieses Skript im Browser mit "http://localhost/cgi-bin/test/test.pl", dann erzeugt es die Datei 'hallo.txt' mit den Dateirechten "rw-r--r--". Starte ich das Skript noch einmal, liefert es die Meldung "'hallo.txt' laesst sich nicht oeffnen".
Erteile ich im Terminal-Fenster als Kommandozeile "group" und "world" mit "chmod 022 hallo.txt" Schreibrechte "----w--w-", kann das Skript die Datei "hallo.txt" schreiben.
Das Ändern der Dateirechte aus dem Perl-Skript heraus mit "system ('chmod', '666', 'hallo.txt')" scheitert mit dem "result = 256".
Was muß ich tun, damit Dateien, die von einem CGI-Skript erzeugt wurden, von diesem später noch einmal geschrieben werden können?