CGI-Skript schreibt Dateien / welche Dateirechte?

Alles, was Perl betrifft, kann hier besprochen werden.

CGI-Skript schreibt Dateien / welche Dateirechte?

Postby Estournel » 17. April 2014 09:44

Ich entwickle CGI-Skripte in Perl unter Mac OS/X 10.8.5 und teste diese offline mit dem von Apple vorinstallierten, lokalen Webserver Apache 2.2.24. Einige dieser Perl-Skripte erzeugen und schreiben Dateien, z.B.:

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?
Estournel
 
Posts: 1
Joined: 08. November 2010 16:37

Return to Perl

Who is online

Users browsing this forum: No registered users and 26 guests